Android поддерживает все планшеты - классифицирует чертежи и макеты

Я видел много потоков, обсуждающих эту проблему в stackoverflow (например this, this и this), и я прочитал документацию о поддержке нескольких экранов и дизайнов. Но я все еще не понимаю структуру папок для чертежей и макетов для разных экранов.

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

Из документации кажется, что я должен добавить drawables для следующих разрешений (имя конечной папки указано в конце),

1) 240 x 320  - Phone LDPI  -> drawable-ldpi

2) 320 x 480  - Phone MDPI  -> drawable-mdpi

3) 480 x 800  - Phone HDPI  -> drawable-hdpi

//Now for tablets

4) 1024x600   - Tablet LDPI -> ??

5) 1280x800   - Tablet MDPI -> ??

6) 1536x1152  - Tablet HDPI -> ??

7) 2560x1600  - Tablet XHDPI-> ??

От поддержки документации нескольких экранов, похоже, я могу использовать папки типа

1) drawable-sw600dp  ( a 7" tablet (600x1024 mdpi).)
2) drawable-sw720dp   (a 10" tablet (720x1280 mdpi, 800x1280 mdpi, etc).

Но как насчет планшетов с разрешениями в диапазоне 1536x1152, 2560x1600 и т.д. диапазон разрешения 10 '(720 x 1280 и т.д.) кажется для них небольшим. Мой клиент имеет Nexus 10 с разрешением 2560 × 1600, и я хочу мое приложение, чтобы выглядеть идеально на нем.

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

Итак, какие и какие резолюции я должен упомянуть дизайнеру? И как я могу классифицировать их в пакете, давая правильное имя папки.

Ответ 1

На самом деле планшеты классифицируются по размеру не по dpi, т.е. 7 "вкладка drawable-large, а вкладка 10" drawable-xlarge. И теперь вы можете снова классифицировать по dpi, как drawable-large-hdpi, что означает, что это вкладка 7 ", которая имеет высокую плотность.

вы можете использовать концепцию наименьшей ширины SW для таргетинга на нее, см. Скелет приложения для поддержки нескольких экранов и сделать расчет для того же самого.

Таблетки Tablet разделены на два размера.

7 "(1024X (600-48 (панель навигации))) = 1024 X 552 (с возможностью увеличения)
    10" (1280X (800-48 (навигационная панель))) = 1280 X 752 (вытягиваемый-xlarge)

и для 2560x1600 вычисляют SW dp с формулой

px = Ширина устройства
dpi = плотность устройства

приведенная формула

px = dp * (dpi / 160)

изменить формулу обмена, если у вас есть значение px

dp = px / (dpi / 160)

поэтому drawable-swxxxdp выполнит задание

Ответ 2

AFAIK есть две переменные вида для отображения устройства: плотность пикселей и размеры экрана. Оба они теоретически независимы, хотя на рынке они меняются вместе от устройств с низким до высоким уровнем.

Требования к плотности пикселей для различных растровых разрешений и уровня детализации (например, значки 36X36 - 96X96).

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

Итак:

  • Чтобы покрыть большую плотность пикселей, вам придется иметь разные версии чертежей: ldpi,mdpi,hdpi and xhdpi. Предпочитайте рисовать с девятью патчами, они намного лучше подходят во всем мире.

  • Чтобы охватить большинство размеров экрана, вам придется иметь различные компоновки и responsive дизайн макета для значений small,large and xlarge. Кроме того, иногда подходят разные макеты для портретной и ландшафтной ориентации.

  • Android также позволяет смешивать конфигурационные комбинации. Например. drawable-large-hdpi и т.д.

  • Избегайте скоординированных жестко закодированных пикселов и размеров, используя плотность или процент.

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

Ответ 3

Мы также можем использовать xxhdpi для drawables, таких как drawable-xxhdpi

xxhdpi (480 точек на дюйм, Android 4.1 или новее)

Или обратитесь к "Табличной колонке Android" в следующей ссылке

http://en.wikipedia.org/wiki/Smartphone

Ответ 4

Я пришел к использованию:

  • одна папка макета (или вторая: макет)
  • несколько папок значений с dimens.xml(-hdpi, -large, -xlarge) для разных размеров, шрифтов и т.д.
  • drawables: -hdpi с большинством изображений, они уменьшаются для всех телефонов; -больше для 7-дюймовых планшетов; -красное для 10-дюймовых планшетов. Или просто -hdpi и -больше.

Я мог бы проверить этот подход, т.е. использовать -sw600dp и -sw720dp, но на данный момент он работает.

Ответ 5

Привет, я думаю, что разрешение для Android - это

10 "- 1280 X 800

7 "- 1024 X 600

xhdpi - 960 x 720

hdpi - 800 X 480

mdpi - 480 X 320