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

Я действительно чувствую себя сбитым с толку. Из документов на 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 ]

23 голосов
/ 06 апреля 2011

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

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

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

Вы также можете поместить несколько кнопок справа в альбомном режиме и внизу макета в портретном!

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

7 голосов
/ 13 марта 2014

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

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

означает, что практически во всех случаях, когда -large будет иметь какой-либо эффект, -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 на другой день (:: кашель :: + Ник Мясник :: кашель ::).

2 голосов
/ 06 апреля 2011

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

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

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

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

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

0 голосов
/ 30 сентября 2013

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

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

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

...