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


Я действительно в замешательстве. Из docs at 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
4 61

4 ответа:

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

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

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

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

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

согласно Android Dev Protip от Романа Нурика о квалификаторах размера экрана:

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

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

Так какой же фактический sw или w отбор следует использовать? Вот так быстро просто-дай-мне-что-то отправная точка:

7" таблетки: вместо макета-большой, используйте макет-sw600dp.

пример: Nexus 7 = 960×600 dp; меньшее из двух измерений является 600.

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

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

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

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

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

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

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

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

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

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

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