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


114

Я створюю додаток, яке працюватиме на всіх пристроях Android. Я хочу створити графіку xhdpi для свого додатка. Мій додаток є повноекранним. Я плутаюся у створенні графіки. хтось може мені сказати найкращі розміри мого фонового зображення в пікселях.

Наприклад:

  • xhdpi: 720x1280 px
  • hdpi: 480x800 px
  • mdpi: 320x480 px
  • ldpi: 240x320 px

Запропонуйте мені найкращі розміри, які будуть відображатися на всіх пристроях добре. Оскільки моя графіка є ядром мого додатка.

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


3
Читайте підтримку декількох екранів для Android Документації, вони дають стандарт для інтерфейсу користувача
RajeshVijayakumar

Використовуйте це одне рішення, це найкраще для всіх старих і нових, а також для майбутніх пристроїв. stackoverflow.com/a/40255870/2489061
Умер

Відповіді:


199

Нижче наведено найкращі параметри роботи програми на всіх пристроях. Щоб зрозуміти декілька екранів, які підтримуються, вам потрібно прочитати 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.
Roel

1
У цьому головна проблема / проблема з Android, немає встановленого розміру для hdpi, xhdpi і т. Д., Оскільки кожне виробництво може виготовляти телефон / планшет різного розміру, на відміну від IOS, де це лише яблуко. Подивіться на розділ про діапазон: 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 (рекомендується) Ви можете змінити колір цих піктограм програмно . https://design.google.com/icons/


Чому тези не узгоджуються із запропонованими тут множниками? developer.android.com/training/multiscreen/screendensities#java
Ben


5

Я оглянув Інтернет, щоб визначити правильні розміри цих густин для квадратних зображень, але не зміг знайти нічого надійного.

Якщо це втішає , посилаючись на відповідь Веерабабу Медісетті, я використовував ці розміри для КВАЛІВ :)

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 px

    xxhdpi: 960x1600 px

    xhdpi: 640x960 px

    hdpi: 480x800 px

    mdpi: 320x480 px

    ldpi: 240x320 px

  4. Потім "Експортуйте" зображення з меню "Файл".


3

Я розумію, що якщо ви використовуєте Viewоб'єкт (як, наприклад, android:windowBackground), Android автоматично масштабує ваше зображення до потрібного розміру. Проблема полягає в тому, що занадто велике масштабування може призвести до артефактів (як під час масштабування, так і вгору) та розмиття. Через різні дозволи та співвідношення сторін на ринку неможливо створити "ідеальні" підходи для кожного екрану, але ви можете зробити все можливе, щоб зробити лише невелике масштабування і таким чином пом'якшити небажані побічні ефекти . Отже, що я би робив:

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

    • ldpi (низький) ~ 120dpi
    • mdpi (середній) ~ 160dpi
    • hdpi (високий) ~ 240dpi
    • xhdpi (надзвичайно високий) ~ 320dpi
    • xxhdpi (надзвичайно високий) ~ 480dpi
    • xxxhdpi (extra-extra-extra-high) ~ 640dpi

    Це відповідає xxhdpiекрану. Звідси я міг масштабувати ці 1080 х 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.