Мне нужно установить весь текстовый контент приложения в зависимости от размеров экрана.Я имею в виду кнопки, текстовые представления и т. Д. Например, если я запускаю приложение на планшете Pixel C, размер текста кнопок и текстовый вид текста должен быть очень большим и очень маленьким в устройстве 320x240.
Сначала я попробовал autoSizeTextType
, но, наконец, я отказался от этого подхода, потому что его можно применять только к TextView, а не к кнопкам и т. Д. *
После этого я попробовал этот подход: https://developer.android.com/training/multiscreen/screendensities создание4 папки в папке res:
values-hdpi
values-mdpi
values-xhdpi
values-xxhdpi
И внутри них файл dimens.xml
со значениями размера текста, например, это файл внутри папки values-xhdpi
:
<resources>
<dimen name="big_text">35sp</dimen>
<dimen name="medium_text">25sp</dimen>
<dimen name="small_text">20sp</dimen>
</resources>
А для других папок я ставлю разные значения для проверки.
Это работает ... но ... это не поведение, которое я ищу.Почему?Поскольку я выполнял приложение в двух разных эмуляторах xhdpi, Pixel C и Nexus 4. Pixel C имеет большее разрешение, но экран очень большой, поэтому оба устройства используют один и тот же файл dimens.xml
, но кнопки и тексты отображаются.отображается маленьким в Pixel C и очень большим в Nexus 4, как вы можете видеть на этом рисунке:
Что нужно сделать, чтобы получить значение размера текстакоторая занимает одну и ту же часть экрана для фразы во всех устройствах?