Android: размер фонового изображения (в пикселях), поддерживающий все устройства


114

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

Например:

  • xhdpi: 720x1280 пикселей
  • hdpi: 480 x 800 пикселей
  • mdpi: 320x480 пикселей
  • ldpi: 240x320 пикселей

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

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


3
Прочтите документацию по Android о поддержке нескольких экранов Android, они предоставляют стандарт для пользовательского интерфейса
Раджеш Виджаякумар,

Используйте это решение, которое лучше всего подходит для всех старых и новых, а также для будущих устройств. stackoverflow.com/a/40255870/2489061
Умер

Ответы:


200

Ниже приведены наилучшие параметры для запуска приложения на всех устройствах. Чтобы понять несколько вспомогательных экранов, прочтите http://developer.android.com/guide/practices/screens_support.html.

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX должен быть 2x HDPI
LarryBud

1
интересно, nexus 5 - это xxhdpi, но размер экрана 1080x1920
Роман

3
LG G3 имеет разрешение 1440 x 2560 и использует xxxhdpi.
Роэл

1
Это основная проблема / проблема с Android, нет установленного размера для hdpi, xhdpi и т. Д., Потому что каждое производство может изготавливать телефон / планшет разного размера, в отличие от IOS, где это делает только Apple. Посмотрите раздел о диапазоне: developer.android.com/guide/practices/…
toidiu

Используйте это решение, которое лучше всего подходит для всех старых и новых, а также для будущих устройств. stackoverflow.com/a/40255870/2489061
Умер

63

Матрицы устройств Android

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(Для хорошего подхода за вычетом размера панели инструментов от общей высоты фонового экрана, а затем - дизайна графики экранов)

Для получения дополнительной помощи (эта ссылка также включает планшеты):

https://design.google.com/devices/

Android Native иконки (рекомендуется) Вы можете изменить цвет этих значков программно . https://design.google.com/icons/


Почему тезисы не совпадают с предложенными здесь множителями? developer.android.com/training/multiscreen/screendensities#java
Бен,


5

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

Если это какое-то утешение, ссылаясь на ответ Veerababu Medisetti, я использовал эти размеры для КВАДРАТОВ :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

Используйте это решение, которое лучше всего подходит для всех старых и новых, а также для будущих устройств. stackoverflow.com/a/40255870/2489061
Умер

4

Инструмент GIMP - это именно то, что вам нужно для создания изображений для устройств с разным разрешением пикселей.

Следуй этим шагам:

  1. Откройте существующее изображение в инструменте GIMP.
  2. Перейдите в меню «Изображение» и выберите «Масштабировать изображение ...»
  3. Используйте размер ниже в пикселях, который вам нужен:

    xxxhdpi: 1280x1920 пикселей

    xxhdpi: 960x1600 пикселей

    xhdpi: 640 x 960 пикселей

    hdpi: 480 x 800 пикселей

    mdpi: 320x480 пикселей

    ldpi: 240x320 пикселей

  4. Затем «Экспорт» изображения из меню «Файл».


3

Насколько я понимаю, если вы используете Viewобъект (как предполагается, например android:windowBackground), Android автоматически масштабирует ваше изображение до нужного размера. Проблема в том, что слишком большое масштабирование может привести к появлению артефактов (как при масштабировании вверх, так и при уменьшении) и размытости. Из-за различных разрешений и соотношений сторон, представленных на рынке, невозможно создать "идеальное" изображение для каждого экрана, но вы можете сделать все возможное, чтобы сделать лишь небольшое масштабирование, и таким образом уменьшить нежелательные побочные эффекты. . Итак, что бы я сделал:

  • Соблюдайте коэффициент масштабирования 3: 4: 6: 8: 12: 16 между шестью обобщенными плотностями (ldpi, mdpi, hdpi и т. Д.).
  • Вы не должны включать элементы xxxhdpi для своих элементов пользовательского интерфейса, это разрешение предназначено только для масштабирования значков средства запуска (только для папки mipmap) ... Вы не должны использовать квалификатор xxxhdpi для элементов интерфейса, кроме значка средства запуска. ... хотя например. при вызове Samsung getDisplayMetrics().densityEdge 7 возвращается 4 (xxxhdpi), поэтому, возможно, эта информация устарела.
  • Тогда посмотрите на новые модели телефонов на рынке, и найдите представительные. Предполагая, что новый пиксель Google является хорошим представлением телефона Android: он имеет разрешение 1080 x 1920 при 441 dpi и размер экрана 4,4 x 2,5 дюйма . Затем из документации разработчика Android :

    • ldpi (низкое) ~ 120 dpi
    • mdpi (средний) ~ 160 dpi
    • hdpi (высокое) ~ 240 точек на дюйм
    • xhdpi (сверхвысокое) ~ 320 точек на дюйм
    • xxhdpi (сверхвысокое) ~ 480 точек на дюйм
    • xxxhdpi (экстра-экстра-сверхвысокое) ~ 640 точек на дюйм

    Это соответствует xxhdpiэкрану. Отсюда я мог уменьшить эти 1080 x 1920 на указанные выше соотношения (3: 4: 6: 8: 12).

  • Я также мог признать, что понижающая дискретизация - это, как правило, простой способ масштабирования, и поэтому я могу захотеть добавить немного увеличенные растровые изображения в свой apk (Примечание: более высокое потребление памяти). Еще раз предполагая, что ширина и высота пиксельного экрана являются репрезентативными, я бы увеличил разрешение 1080x1920 в 480/441 раз, оставив фоновое изображение с максимальным разрешением прибл. 1200x2100, который затем следует масштабировать до 3: 4: 6: 8: 12.
  • Помните, что вам нужно только предоставить чертежи, зависящие от плотности, для файлов растровых изображений (.png, .jpg или .gif) и файлов Nine-Patch (.9.png). Если вы используете XML-файлы для определения доступных для рисования ресурсов (например, фигур), просто поместите одну копию в каталог для рисования по умолчанию.
  • Если вам когда-либо придется использовать действительно большие или странные соотношения сторон, создайте для них специальные папки, используя для этого флаги, например. sw, long, largeИ т.д.
  • И не нужно дважды рисовать фон. Поэтому установите стиль с<item name="android:windowBackground">@null</item>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.