Android: какой файл dimens.xml выбран для какого размера экрана?

Если у меня есть макет таблицы, скажем, 2 строки и 2 столбца. Каждое поле таблицы квадрантов имеет статический текст, например "box_11", "box_12", "box_21", "box_22". Я хочу, чтобы размер текста был больше для большего экрана и меньше для маленьких экранов. Я хочу, чтобы текст масштабировался в соответствии с размером экрана. Как мне это сделать?
Я думаю, мне следует использовать файл dimens.xml, определяющий:
<dimen name="activity_text_size">15sp</dimen>
Тогда я должен использовать android:textSize="@dimen/activity_text_size"

Я вижу, что существуют разные "значения" такие каталоги, как значения, значения-sw600dp, значения-sw720dp_land, значения-v11, значения-v14 в рабочей области моего проекта. В каждом каталоге значений может быть файл dimens.xml. На каком основании выбирается dimens.xml при наличии нескольких файлов?


person user2901219    schedule 10.07.2014    source источник
comment
Объяснение здесь: developer.android.com/guide/topics/resources /   -  person matiash    schedule 11.07.2014
comment
sp должен масштабироваться (вот что это значит, масштабирование независимого пикселя). Не начинайте создавать другие измерения, если они вам действительно не нужны. И когда вы начнете исправлять проблему со шрифтом, сосредоточьтесь на использовании разных квалификаторов плотности, а не разных квалификаторов размера макета.   -  person Stephan Branczyk    schedule 11.07.2014


Ответы (2)


Например:

//в dimen.xml(600dp)

<resources> <dimen name="activity_text_size">15dp</dimen> </resources>

//в dimen.xml(sw720dp_land)

<resources> <dimen name="activity_text_size">20dp</dimen> </resources>

//в dimen.xml(w820dp)

<resources> <dimen name="activity_text_size">25dp</dimen> </resources>

и для любого размера экрана вы должны использовать определенный размер dimen.xml (ваш целевой размер) и использовать для него одно и то же имя dimen.name.

person Mazidi    schedule 16.02.2015

Со ссылкой на ссылку @matiash и другой официальный ресурс: - http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatchhttps://developer.android.com/guide/practices/screens_support.html

«Стандартные» плотности, которые учитываются:

Набор из шести обобщенных плотностей:

  1. ldpi (низкий) ~120 точек на дюйм

  2. mdpi (средний) ~160dpi

  3. hdpi (высокий) ~ 240 точек на дюйм

  4. xhdpi (сверхвысокий) ~320 точек на дюйм

  5. xxhdpi (экстра-экстра-высокий) ~ 480 точек на дюйм

  6. xxxhdpi (экстра-экстра-экстра-высокий) ~640 точек на дюйм

Когда вы создаете приложение с несколькими файлами dimen.xml, выбирается тот, который подходит для данного размера экрана.

Если в случае, когда ресурс не предоставляется для этой конкретной плотности экрана:

Если соответствующий ресурс недоступен, система использует ресурс по умолчанию и масштабирует его по мере необходимости, чтобы он соответствовал текущему размеру и плотности экрана.

Надеюсь, это поможет вам :)

person jarodsmk    schedule 15.06.2016