2016-11-24 2 views
1

для моего приложения Я хочу дать пользователю возможность отрегулировать текст для элементов TextView в представлении ресайклера (с помощью масштабирования или SeekBar). По умолчанию должны быть тексты, выбранные в системных настройках. Минимальное значение должно быть «очень маленьким» и максимальным значением «огромного» значения из системных настроек. Я нашел несколько советов по использованию Settings.System.getFloat(context, Settings.System.FONT_SCALE) или TextView.setTextAppearance(context, android.R.style.TextAppearance_DeviceDefault_Large), но я не получаю нужный результат по телефону TextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, value). Любые идеи?Как получить настройки андроидного текста в java (min, max, selected)

Спасибо заранее, Dirk

+0

Вы пробовали 'TextView.setTextSize (TypedValue.COMPLEX_UNIT_SP, value)'? –

+0

@sunnil sunny - да, спасибо, но это действительно не отвечает на мой вопрос. Чтобы получить текущий текст, я создаю объект «TextView» (не добавляя его в макет) и вызывая его метод getTextSize(). Я думал, что будет более элегантный способ и дополнительно: как получить минимальные и максимальные значения в соответствии с диалоговым окном настроек системы? –

+0

Я думаю, вы ищете это http://stackoverflow.com/questions/28411099/how-to-get-default-text-size-from-textview-on-widget. –

ответ

0

Может быть, это потому, что вы не преобразования «значение» для правильного unit.Try это

int size = ((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value ,getResources().getDisplayMetrics()) 

Здесь ваше значение изменяется на единицу коррекции в СП

TextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, size) 
Смежные вопросы