2015-05-21 4 views
-2

Я хотел бы увеличить размер шрифта TextView во время выполнения, если выполнены особые условия.Как увеличить размер текста в Android?

Я хочу сделать это независимым от плотности способом. Я знаю, что выражение должно быть как setTextSize(getTextSize() + 3 * factor);, хотя я не знаю, как придумать factor.

Может ли кто-нибудь просветить меня?

ответ

1

Получение коэффициента плотности достаточно прост:

float density = context.getResources().getDisplayMetrics().density; 
+0

Так вы думаете, 'плотность поплавка = context.getResources(). GetDisplayMetrics(). Плотность ; setTextSize (плотность getTextSize() + 3 *); 'будет работать? –

+1

100% положительный, что он будет –

0

Когда вы смотрите в

setTextSize (размер поплавка)

вы увидите этот метод.

public void setTextSize(float size) { 
    setTextSize(TypedValue.COMPLEX_UNIT_SP, size); 
} 

Это означает, что TextSize корректируется на основе плотности тока и предпочтений шрифта.

или Вы можете установить свой собственный setTextSize как

Значение сырых пикселей

setTextSize(TypedValue.COMPLEX_UNIT_PX, size); 

Значение Device Independent

setTextSize(TypedValue.COMPLEX_UNIT_DIP, size); 

Значение масштабируется пикселей

setTextSize(TypedValue.COMPLEX_UNIT_SP, size); 

Значение в баллах

setTextSize(TypedValue.COMPLEX_UNIT_PT, size); 

Значение в дюймах

setTextSize(TypedValue.COMPLEX_UNIT_IN, size); 

Значение находится в миллиметрах

setTextSize(TypedValue.COMPLEX_UNIT_MM, size); 
+0

Спасибо за ваш ответ, но проблема в том, что я не просто задаю размер текста. Я увеличиваю его, и 'getTextSize' возвращает размер текста в пикселях. Поэтому мне нужно что-то, что работает с плотностью экрана. –

Смежные вопросы