Як підготувати картинки під різні екрани - stack overflow російською

Як правильно готувати і додавати в проект картинки під різні екрани (mdpi, hdpi, xhdpi, etc ..)?

Наприклад, намалював я картинку для ImageButton. Мені її потрібно в фотошопі (наприклад) нарізати самому на розширення під різні екрани?

Або ж можна так:

зберегти картинку з максимальною роздільною здатністю, потім import the Image Asset in Android Studio. потім правий клік мишкою на res ⇒ New ⇒ Image Asset і тоді картинки самі поріжуть і помістяться в потрібні папки (drawable-mdpi etc ..)?

заданий 23 Жовтня '15 о 19:04

Звичайно ви можете використовувати інструмент ImageAsset. який входить в Android Studio. він спеціально для цього існує і позбавляє від нудної рутини, так як сам поріже на потрібні для ресурсів дозволу (наприклад іконка hdpi - 72x72 пікселя), розміщує потрібні картинки по потрібних папках (-mdpi, -hdpi, -xhdpi і тд.). додає відсутні папки та ін.

Крім того, інструмент дозволяє легко зробити поля, підкладку і деякі інші функції, актуальні в таку роботу, не метаясь між декількома додатками - легко, комфортно і дуже швидко.

Так само містить готовий пак стандартних іконок андроїд (Clipart -> Choose).

Однак інструмент має істотне обмеження - він не працює з довільними розмірами - тільки стандартні квадратні іконки (стандартних розмірів у пікселях) для статусбара, самого додатка, панелі повідомлень і тд. тобто прямокутний фон для кастомной кнопки довільних розмірів в пікселях (наприклад 40х120 пікселів) він не зробить під всі дозволи екранів. Це дуже погано і тут вже доводиться самому по-старому.

Загалом, для випадків, коли інструмент впорається з завданням (а його завдання - підготовка різних іконок стандартних розмірів), його не тільки можна, а й потрібно використовувати, так як він робить всю "чорну" роботу прямо в IDE, але застосувати його можна не для всіх типів картинок, на жаль.

Для підготовки 9-patch изображнием з "звичайного" в Android Studio так само існує вбудований інструмент, яким теж цілком можна і потрібно користуватися:

У Google на сайті Developers: API Guides розписаний весь процес розробки від і до.

Зокрема, про підтримку різних дозволів екранів: Supporting Multiple Screens.

У двох словах - для кожного профілю mdpi, hdpi. робляться свої ресурси (іконки та ін.). За основу беруться розміри mdpi. Причому іконки можуть розтягуватися для кратних профілів, наприклад xhdpi = 2.0 x mdpi. досить добре самою системою, тобто робити іконки під кожен профіль може і не варто.

Для кнопок (і взагалі зображень) є спеціальний формат - Nine-patch .9.png (png з прозорими зонами, які задають напрямки розтягування кнопки / зображення).

відповідь дан 23 Жовтня '15 о 22:02

Дякую за розгорнуту відповідь. В цілому я розумію як робляться ресурси під різні екрани, про mdpi, hdpi (x 1.5) я теж знаю. Мені б більше цікаво як це роблять інші розробники, як роблять гуру) Сам я - беру картинку, ріжу її на певні розміри, створюю папки drawable і відповідно розкидаю. - researcher 23 Жовтня '15 о 22:24

відповідь дан 24 Жовтня '15 о 9:40

Постарайтеся писати більш розгорнуті відповіді. Поясніть, на чому грунтується ваше твердження? - Nicolas Chabanovsky ♦ 26 Жовтня '15 о 13:22