Експорт графічних асетів для Android: всі щільності (mdpi–xxxhdpi)
Розмиті іконки на флагманах? Неправильні пропорції на бюджетниках? Помилки в іменах файлів, що ламають компіляцію? Це типові проблеми, коли Android-асети не підготовлені для всіх щільностей. Ми надаємо послугу з підготовки графічних асетів для Android-додатків з урахуванням усіх density-бакетів. Наш досвід — понад 5 років і 20+ проектів — гарантує, що іконки та ілюстрації будуть чіткими на будь-якому пристрої: від старих бюджетників до новітніх флагманів.
Чому важлива підготовка асетів для кожної щільності?
Android екрани мають різну кількість пікселів на дюйм (dpi). Без підготовки під кожну щільність система масштабує непідходящий ресурс, що призводить до розмиття або пікселізації. Ми використовуємо правильні коефіцієнти: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×). Наприклад, іконка 24dp на xxhdpi має бути 72px, а на mdpi — 24px. Якщо покласти лише один розмір, на інших щільностях вона буде спотворена.
Таблиця щільностей і типових пристроїв
| Density | Коефіцієнт | Типові пристрої |
|---|---|---|
| mdpi | 1× (160 dpi) | Старі бюджетні пристрої (застаріли) |
| hdpi | 1.5× (240 dpi) | Бюджетний сегмент |
| xhdpi | 2× (320 dpi) | Середній клас |
| xxhdpi | 3× (480 dpi) | Більшість флагманів |
| xxxhdpi | 4× (640 dpi) | Pixel 8 Pro, Galaxy S24 Ultra |
Як уникнути помилок при експорті?
На одному з проектів клієнт надав іконки в єдиному розмірі 48px, що призвело до пікселізації на xxhdpi. Ми конвертували іконки у VectorDrawable, що дозволило зменшити розмір APK на 25% та забезпечити чіткість на всіх щільностях.
Нечіткі межі на xhdpi/xxhdpi. Дизайнер малює іконку 24×24px і експортує безпосередньо без урахування щільностей. На xxhdpi система масштабує 24px до 72px білінійною інтерполяцією — розмито. Рішення: малювати в розмірі для найбільшої щільності.
Неправильна папка mipmap vs drawable. Іконки лаунчера — в mipmap-*. Всі інші асети — в drawable-*. Система обробляє mipmap інакше при масштабуванні. Покласти App Icon в drawable — іконка буде правильно відображатися, але втратить оптимізацію для launcher.
Імена файлів. Імена ресурсів в Android — лише малі літери, цифри та підкреслення. ic_Arrow_Right.png викличе помилку компіляції. ic_arrow_right.png — правильно.
Зайві папки не потрібні: ldpi (0.75×) вже не використовується, а mdpi можна опустити для проектів, що не підтримують пристрої до 2015 року. Ми рекомендуємо залишати лише ті щільності, які реально потрібні.
Векторні vs растрові асети
Прості іконки, піктограми, UI-елементи без фотографічних деталей — завжди VectorDrawable (SVG-подібний XML формат Android). Один файл заміняє всі щільності, немає розмиття. Векторні асети займають в 10 разів менше місця, ніж набір растрових PNG. Обмеження: не підтримує складні ефекти (blur, деякі gradient types), анімовані ілюстрації вимагають AnimatedVectorDrawable або Lottie.
Для PNG-асетів (фотографії, складні ілюстрації, рекламні банери) готуємо для кожної density окремо. Правило: малюємо в xxxhdpi (4×), масштабуємо вниз. Масштабування вгору завжди дає втрату якості.
Порівняння розмірів файлів для різних щільностей (приклад для іконки 24dp)
| Тип | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi | Всього |
|---|---|---|---|---|---|---|
| Растровий PNG | 0.5 KB | 1 KB | 2 KB | 4 KB | 8 KB | 15.5 KB |
| VectorDrawable | 0.2 KB | (один файл) | 0.2 KB |
Процес підготовки
- Отримуємо від дизайнера SVG або PDF (векторне джерело)
- Прості іконки → конвертуємо в
VectorDrawableчерез Android Studio (File → New → Vector Asset → Local SVG) - Растрові асети → експортуємо з Figma з множниками 1×, 1.5×, 2×, 3×, 4× у відповідні папки
- Перевіряємо імена на відповідність naming convention
- Оптимізуємо PNG через
pngquantабоoptipngдля зменшення розміру APK
Що входить в роботу
- Аудит поточних асетів (якщо є)
- Конвертація іконок у VectorDrawable
- Експорт растрових асетів у 5 щільностей
- Правильна структура папок mipmap і drawable
- Оптимізація розміру файлів
- Готовий набір для вставки в Android Studio / передачі розробнику
Строки
4 години — 2 дні залежно від кількості асетів та необхідності конвертації у векторний формат. Вартість розраховується індивідуально.
Зв'яжіться з нами для оцінки вашого проекту. Ми підготуємо асети під ключ з гарантією якості та точної відповідності вимогам Android.







