Как Android решает, какую папку макета использовать?

#android

#Android

Вопрос:

В моем приложении у меня есть 3 разные папки макета:

 layout
layout-large
layout-xlarge
  

Я сделал это в соответствии с доступными экранами устройств Android, описанными здесь. Итак, я подумал, что размер экрана в дюймах — это единственное, что используется для определения того, какую папку макета использовать. Но недавние тесты с различными 7-дюймовыми эмуляторами показали, что иногда используется layout , а иногда и layout-large папка. Итак, кто-нибудь может сказать мне, какие другие факторы используются?

Ответ №1:

7-дюймовые планшеты Android — это HDPI и large .

xlarge на момент их создания не существовало, и хотя большинство из них имеют плотность пикселей вокруг 160 ( MDPI ), они представляются как HDPI устройства, потому что так выглядит лучше.

Итак, 7-дюймовые планшеты не совсем вписываются в систему ресурсов должным образом, потому что на самом деле не было способа установить их до версии 3.0, которая ввела новые критерии размера экрана.

Ответ №2:

Я думаю, что размер в дюймах — это единственное, что имеет значение. Некоторое время назад здесь был вопрос, когда у кого-то были некоторые странные результаты при попытке заставить эмуляторы выбирать из правильных папок макета для 7-дюймовых устройств. У меня есть Galaxy tab, и он всегда будет использовать layout-large или layout-hdpi.

Редактировать: возможно, я был неправ, кажется, что тип экрана и количество пикселей тоже могут иметь значение —

 * small: Screens based on the space available on a low-density QVGA screen. Considering a portrait HVGA display, this has the same available width but less height—it is 3:4 vs. HVGA's 2:3 aspect ratio. The minimum layout size for this screen configuration is approximately 320x426 dp units. Examples are QVGA low density and VGA high density.
* normal: Screens based on the traditional medium-density HVGA screen. A screen is considered to be normal if it is at least this size (independent of density) and not larger. The minimum layout size for this screen configuration is approximately 320x470 dp units. Examples of such screens a WQVGA low density, HVGA medium density, WVGA high density.
* large: Screens based on the space available on a medium-density VGA screen. Such a screen has significantly more available space in both width and height than an HVGA display. The minimum layout size for this screen configuration is approximately 480x640 dp units. Examples are VGA and WVGA medium density screens.
* xlarge: Screens that are considerably larger than the traditional medium-density HVGA screen. The minimum layout size for this screen configuration is approximately 720x960 dp units. In most cases, devices with extra large screens would be too large to carry in a pocket and would most likely be tablet-style devices. Added in API Level 9.
  

Если у вас есть папки с более чем одним определителем, таким как layout-large-mdpi и т.д., Вы также должны обратить внимание на порядок приоритета. эта страница должна помочь.

Комментарии:

1. 1 Спасибо, это кое-что объясняет. Откуда у вас описание экранов? Я бы тоже хотел это прочитать.

2. Это в таблице на странице, на которую я ссылался внизу моего ответа.

Ответ №3:

Согласно руководству Google по поддержке экрана Android, res / layout используется для обычных экранов и является папкой по умолчанию, в которой отображается ОС.