Почему на android 5 размер текста в Textview такой большой?

Я отлаживаю своё приложение на разных версиях Android. Во всех целевых версиях мой Textview выглядит хорошо (все отступы и размеры такие, как надо), но в Android 5 и 6 почему-то Textview выглядит очень большим. Визуально кажется, что увеличивается размер самого текста. Размер пробовал выставлять и в sp, и в dp, но результат один и тот же. Не могу понять в чём причина, подскажите, пожалуйста?

Текствью создаю так:
TextView tv = new TextView(this);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        Typeface type = Typeface.createFromAsset(getAssets(), "fonts/calibri.otf");
        tv.setTypeface(type);
        tv.setTextSize(getResources().getDimension(R.dimen.reader_main_text));
        tv.setLineSpacing(0.0f, 1.3f);
        ll.addView(tv);


В dimen параметр reader_main_text у меня выглядит так:
<dimen name="reader_main_text">11sp</dimen>
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 1
artemgapchenko
@artemgapchenko
getResources().getDimension() возвращает значение в пикселях, а setTextSize(float size) по умолчанию трактует значение параметра как число scale-independent pixels, и умножает его на соответствующий коэффициент ещё раз. Используйте версию setTextSize(), в которой можно задавать используемый unit.
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.reader_main_text));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы