Подтвердить что ты не робот

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

Я действительно чувствую смущение. Из docs на сайте 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
4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

В соответствии с Android Dev Protip от Roman Nurik о спецификаторах размера экрана:

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

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

Итак, какие фактические квалификаторы sw или w вы должны использовать? Здесь быстро just-give-me-something-отправная точка:

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

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

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

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

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

Ответ 3

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

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

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

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

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

Ответ 4

Да. Вы должны определить разную компоновку для разного разрешения экрана.

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

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