Как сделать размер текста TextView на основе размера экрана устройства в Android

У меня есть одно приложение, которое может быть запущено на экране другого размера от 3,7 дюйма до 6,0 дюйма (для планшета сейчас нет плана).

Теперь у меня есть TextView, которые имеют 17dp для заголовка и 14dp описания. но когда я запускаю приложение на маленьком устройстве (3,7-4,7 дюйма), текстовый вид текста большой.

Но то же самое текстовое представление в более высоких 5,5 или 5,7 может быть небольшим.

так как я могу сделать так, чтобы TextView выглядел одинаково для всех устройств.

4 ответа

Решение

У меня была та же проблема, и я использовал эту библиотеку, и она сделала это для меня.

Дело в том, что вам нужно просто заменить sp на ssp в вашем xml после добавления этой библиотеки в ваш gradle, и все будет хорошо.

Поскольку размер экрана составляет от 3,7 до 6,0, вам нужно создать только 1 дополнительный файл измерений, такой как sw480, и использовать dp-s для измерений TextView и sp для размера текста. В файле измерений по умолчанию вы должны записать размеры для устройств с наименьшими размерами экрана, например, для 3,7 ', и сравнительно большими размерами в файле sw480, например для экранов 5,5'. На основании конкретных случаев могут быть созданы дополнительные файлы измерений, такие как sw360. Если ширина экрана меньше 360 dp ,, он будет использовать значения из файла измерений по умолчанию, если 360dp <= размер экрана < 480dp, будет использоваться sw360. Та же самая простая логика работает для каждого созданного файла SW.

Создайте несколько измерений.xml для вашего проекта, он даст размер в соответствии с размером дисплея

Вы должны создать папку с несколькими значениями и создать в них измерения. Ссылка на эти папки:

values-sw720dp          10.1” tablet 1280x800 mdpi

values-sw600dp          7.0”  tablet 1024x600 mdpi

values-sw480dp          5.4”  480x854 mdpi 
values-sw480dp          5.1”  480x800 mdpi 

values-xxhdpi           5.5"  1080x1920 xxhdpi
values-xxxhdpi           5.5" 1440x2560 xxxhdpi

values-xhdpi            4.7”   1280x720 xhdpi 
values-xhdpi            4.65”  720x1280 xhdpi 

values-hdpi             4.0” 480x800 hdpi
values-hdpi             3.7” 480x854 hdpi

values-mdpi             3.2” 320x480 mdpi

values-ldpi             3.4” 240x432 ldpi
values-ldpi             3.3” 240x400 ldpi
values-ldpi             2.7” 240x320 ldpi

В Android вы имеете дело со значениями dp/sp. Не думай о физическом размере. Есть этот отличный плагин, который позволяет вам конвертировать ваши значения sp/dp в разные сегменты. Вы можете добавить https://plugins.jetbrains.com/plugin/9349-dimenify

Другие вопросы по тегам