Нарешті створили структуру, яка обробляє макети та піктограми для декількох екранів.
Android узагальнює відображення пристроїв за категоріями на основі двох параметрів:
- Розмір екрана, фізичний розмір дисплея (вимірюється по діагоналі)
- Щільність екрану, фізична щільність пікселів дисплея (у пікселях на дюйм або ppi) `
Щоб швидко визначити розмір та щільність екрану, встановіть програму " Який мій розмір " для Android.
Розмір екрану
Android визначає чотири узагальнених розміри екрану:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- Більшість телефонів класифікуються як маленькі або звичайні (приблизно по діагоналі від 3 до 4 дюймів). Але зараз є багато телефонів з великим екраном, таких як Galaxy S4, HTC One, Xperia Z
- Маленький планшет, такий як Samsung Galaxy Tab, класифікується як великий (розмір більше 4 дюймів)
- Надзвичайно великий застосовується до великих пристроїв, наприклад великих планшетів
Android визначає чотири узагальнені щільності екрану:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Зазвичай:
- розмір екрану найбільше впливає на макети додатків
- щільність екрану найбільше впливає на зображення та графічні ресурси
Він перерахований тут процентну різницю екрану пристрою в
- Ldpi - 75%
- Mdpi - 100% (база відповідно до сайту розробника Android)
- Hdpi - 150%
- XHdpi - 200%
Але, як ми зараз знаємо, більшість пристроїв поставляються з 480X800, тому я вважаю це базовим пристроєм, тому наш новий розрахунок сподобається
- Ldpi - 50%
- Мдпі - 66,67%
- Hdpi - 100%
- XHdpi - 133,33%
це означає, що спочатку значок та дизайн будуть створені лише для 480X800, а потім для інших (тобто Ldpi, Mdpi, Xhdpi).
Є зображення, які є загальними для всіх макетів і повинні бути однорідними за кольором та формою (не мають складної форми, не мають кривої), тому для такого типу зображення ми створюємо його, 9patch
яке буде поміщено в папку «з можливістю малювання (без суфікса)». Для створення образу 9Patch ви можете використовувати DrawNinePatch або BetterNinePatch
Тепер просто перейменуйте свої зображення відповідно до стандартів Android і заповніть свою програму, hdpi
а потім просто візьміть drawable-hdpi
папку і відкрийте Adode Photoshop (рекомендується), створіть дію декількох розмірів (просто змініть розмір відповідно до процентного співвідношення), коли дію створите для будь-якого розміру, просто виконайте Пакетна автоматизація та надання джерела (drawable-hdpi) та призначення (drawable-ldpi, drawable-mdpi, drawable-xdpi).
Причиною того, що я наполягаю на тому, щоб використовувати Photoshop, оскільки він автоматично змінить розмір вашого зображення за допомогою дій і ще однієї плюсової точки, є те, що вам не потрібно перейменовувати файл (йому буде присвоєно те саме ім'я, що і оригінальному).
як тільки ви завершите створення всіх зображень, оновіть свій проект і протестуйте його.
Іноді може бути ймовірність того, що макет, який підтримує екран (xhdpi, hdpi, mdpi), може бути вирізаний на маленькому екрані (ldpi), тому для обробки цього просто створіть окрему папку Layout (layout-small) для нього та додайте ScrollView
(переважно). Це воно.
Таблетки
Планшети поділяються на два розміри.
- 7 "(1024X (600-48 (навігаційна панель))) = 1024X552 (велика для малювання)
- 10 "(1280X (800-48 (панель навігації))) = 1280X752 (малюнок-великий)
Для цього нам потрібно створити зображення як для екрану, так і просто розмістити їх відповідно
Отже, загалом у нас буде ця папка в нашому додатку для підтримки декількох екранів.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
буде більш кваліфікуючою комбінацією з Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
більше кваліфікатор з Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
і більше кваліфікатор з Screen size and Version
drawable-large-v11
drawable-xlarge-v11
і більше кваліфікатор з Smallest width concept(SW)
drawable-sw???dp
Більше того, в Android V3.0 Honeycomb вони запровадили нову концепцію, SW(smallest width)
в якій пристрій класифікується за шириною екрана, тому, якщо ми створюємо папку з іменем, drawable-sw360dp
тоді пристрій із 720dp (або шириною, або висотою) буде використовувати ресурс з цієї папки.
наприклад, щоб знайти суфікс Samsung Galaxy S3
dp до drawable-sw? dp
З посиланням на Розрахунок DP , Якщо ви хочете підтримати свій макет або малювати до S3, тоді обчислення говорить
px = ширина пристрою = 720
dpi = щільність пристрою = 320
формула подана
px = dp * (dpi / 160)
взаємозамінна формула, оскільки ми маємо значення px
dp = px / (dpi / 160)
тепер вкладаючи вартість,
dp= 720 / (320/160);
dp=360.
так drawable-sw360dp
буде робити роботу
Отримайте вам налаштування пристрою від GsmArena
Sameway, ви також можете створити папку відповідно до версії Android API пристрою, тобто drawable-hdpi-v11`, тому пристрій, який має API11, і це Hdpi, тоді буде використовувати ці ресурси.
Додаткові поради:
Використовуйте відносні макети, dp, sp та mm
dp блоки - незалежні від пристрою пікселі, нормалізовані до 1 фізичного пікселя на екрані 160 ppi, тобто середньої щільності. Масштабовано під час виконання. Використовуйте для розмірів елементів екрану
sp units - масштабовані пікселі, що визначаються як значення з плаваючою комою, на основі одиниць dp, але додатково масштабуються для параметра налаштування розміру шрифту користувача. Масштабується під час виконання. Використовуйте для розмірів шрифтів
ви завжди повинні використовувати RelativeLayout для макетів; AbsoluteLayout застарілий і не повинен використовуватися.
Використовуйте відповідні формати зображень - PNG проти JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
Однак PNG та JPEG не є еквівалентами. Вони мають різні компроміси з якістю, і PNG не завжди найкращий:
JPEG може забезпечити зменшення розміру файлу до 50% порівняно з PNG, що дуже важливо, якщо ваш додаток вимагає великих зображень
JPEG вищої якості "з втратами" може виглядати краще, ніж сильно стиснутий PNG без втрат при однаковому розмірі файлу
Додайте ярлики до своїх зображень та графіки для налагодження
Використовуйте елемент support-screen
Налаштуйте емулятори на реальні значення пристрою
Звичайно настільні системи відображаються зі швидкістю 72ppi (Mac) або 96ppi (Windows, Linux). У порівнянні з мобільними, настільні дисплеї завжди мають низьку щільність.
Завжди налаштовуйте свої емулятори Android на імітацію реальних значень пристрою, і завжди встановлюйте їх масштабування, щоб імітувати щільність пристрою.
В Eclipse легко створити кілька емуляторів (на панелі меню Eclipse виберіть « Вікно»> «AVD Manager»> «Новий» ), налаштованих зі значеннями для реальних пристроїв:
Назвіть емулятор для реального пристрою, на який він емулює, Вкажіть роздільну здатність, не використовуйте вбудовані загальні розміри Встановіть щільність пристрою відповідно до реального пристрою (на панелі апаратного забезпечення встановіть Abstracted LCD Properties на реальну щільність, завжди ціле значення)
Під час запуску пристрою завжди вибирайте масштабувати дисплей до реального розміру та введіть реальний розмір екрана в дюймах.
Якщо ви не встановите щільність пристрою, емулятор за замовчуванням має низьку щільність і завжди завантажує ldpi-ресурси. Роздільна здатність (розміри пікселів) буде правильною, але ресурси, що залежать від щільності, не відображатимуться належним чином.
Звичайно, ніщо з того, що ви робите, не відтворюватиме зображення високої щільності на дисплеї з меншою щільністю робочого столу.
Ось дані, зібрані протягом 7-денного періоду, що закінчується 1 жовтня 2012 року. Щоб переглянути останню статистику про версію платформи Android, перейдіть сюди
Виходячи з розміру екрану
На основі щільності екрану