Нужно ли мне 14 разных макетов для поддержки всех Android-устройств?

Я действительно смущен. Из документов на сайте developer.android.com, похоже, чтобы мои изображения были масштабированы правильно (соотношение сторон тоже) на всех современных устройствах Android, мне нужны все эти макеты ниже. Это действительно то, что все делают? Я что-то упускаю, или я должен идти по этому поводу по-другому?

Low density Small screens QVGA 240x320 ------------------------------------------------ layout-small-ldpi layout-small-land-ldpi Low density Normal screens WVGA400 240x400 (x432) ------------------------------------------------ layout-ldpi layout-land-ldpi Medium density Normal screens HVGA 320x480 ------------------------------------------------ layout-mdpi layout-land-mdpi Medium density Large screens HVGA 320x480 ------------------------------------------------ layout-large-mdpi layout-large-land-mdpi High density Normal screens WVGA800 480x800 (x854) ------------------------------------------------ layout-hdpi layout-land-hdpi Xoom (medium density large but 1280x800 res) ------------------------------------------------ layout-xlarge layout-xlarge-land 

Solutions Collecting From Web of "Нужно ли мне 14 разных макетов для поддержки всех Android-устройств?"

Ваше приложение будет работать на 100% устройств с классическим расположением.

Вы можете просто добавить некоторые кнопки или изменить макет в ландшафтном режиме, добавив некоторые квалификаторы, но это зависит от вас!

Например, на устройстве LDPI (маленькое разрешение) вы можете настроить некоторые кнопки или немного поменять, чтобы они соответствовали маленькому экрану.

Вы также можете поместить некоторые кнопки справа в ландшафтном режиме и в нижней части вашего макета на портрете!

Вы не должны «использовать» их.

Согласно Android Dev Protip от Roman Nurik о спецификаторах экрана:

Если у вас есть настраиваемые макеты для более крупных экранных устройств, таких как планшеты, теперь настало время прекратить использование -large или -xlarge классификатора ресурсов и переключиться на использование -swXXdp или -wXXdp квалификаторов. Последние были введены в уровень API 13 , который в основном все планшеты теперь поддерживают в соответствии с последней версией платформ платформы1.

Означает, что в основном во всех случаях, когда -больше будет иметь какой-либо эффект, -swXXdp можно использовать вместо этого, чтобы обеспечить большую детализацию.

Итак, какие фактические квалификаторы sw или w вы должны использовать? Вот кратчайшая отправная точка:

7 ". Вместо макета большого размера используйте layout-sw600dp.

Пример: Nexus 7 = 960 × 600 dp; Меньший из двух измерений – 600.

10 "планшета: вместо layout-xlarge используйте layout-sw720dp.

Пример: Nexus 10 = 1280 × 800 dp; Меньший из двух размеров – 800. Некоторые 10-дюймовые планшеты немного более узкие, поэтому 720 является обычно используемой точкой переключения.

Это больше, чем просто (вы действительно хотите выбирать точки переключения на основе минимальных требований вашего контента, а не на форм-факторе устройства), но это #Protip для другого дня (:: cough :: + Nick Butcher :: cough: :).

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

Но в некоторых случаях для небольших экранов вам нужно объявить новый макет с меньшим количеством компонентов, например.

Для изображений:

У вас есть несколько вариантов.

Просто игнорируйте некоторые разрешения и позволяйте устройству выбирать наилучшее изображение. Объявите на AndroidManifest для тех размеров, которые вы хотите поддерживать. Или имеет только один, и пусть размер изменяет ваше приложение.

Да. Вы должны определить разные макеты для разных разрешений экрана.

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

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