Как добавить иконки и изображения в Android Studio и настроить launcher icon без ошибок

В двух словах: храните launcher icon в mipmap, все прочие картинки — в drawable; для интерфейсных иконок используйте Vector Asset, большие иллюстрации — WebP/PNG оптимизированные; создавать launcher icon удобно через New → Image Asset. Ниже — пошагово и с практическими советами.

Оглавление автоматически создаётся ниже, если статья длиннее 3000 знаков.

Оглавление {{TOC_AUTOMATIC}}

Основы и структура ресурсов

Android хранит графику в res и выбирает файл по каталогу и плотности экрана. Ключевые каталоги:

  • mipmap-... — для иконки приложения (launcher). Система лаунчера может выбирать из этих папок.
  • drawable-... — интерфейсные иконки, фоны, shape, state-list, векторные ресурсы.

Плотности: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Либо используйте вектор (.xml) — одна версия для всех плотностей — либо генерируйте растровые варианты под каждую плотность.

Пример ссылки в манифесте:

<application android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...>

Vector Asset хорошо подходит для кнопочных иконок и toolbar: масштабируется без потерь и легко меняется через tint.

Практические шаги: добавление изображений и создание launcher icon

  1. Добавление обычной картинки:

    • Project → режим Android → app/src/main/res → drawable → перетащите файл.
    • Или Resource Manager → Drawable → + → Import Drawables.
    • Соблюдайте lower_snake_case: ic_profile, bg_header.
  2. Использование Vector Asset:

    • File → New → Vector Asset → выберите Clip Art или импортируйте SVG.
    • Укажите имя (ic_add), размер (обычно 24dp) → Finish.
    • В местах: android:src="@drawable/ic_add".
  3. Создание/обновление launcher icon:

    • Правый клик на res или модуле app → New → Image Asset.
    • Asset Type: Launcher Icons (Adaptive and Legacy).
    • Foreground: PNG/SVG или текст; Background: цвет или изображение.
    • Просмотрите варианты форм (круг, квадрат и т.д.) и плотности.
    • Finish → мастер сгенерирует mipmap-* и адаптивные ресурсы, обновит манифест при необходимости.
  4. Проверка на устройстве:

    • Clean → Rebuild Project.
    • Удалите старую версию приложения с устройства/эмулятора и установите заново (лаунчер может кэшировать иконки).

Не используйте имена с дефисами, пробелами или заглавными буквами. Имена ресурсов должны быть lower_snake_case.

Оптимизация изображений и практические рекомендации

  • WebP: конвертируйте большие PNG в WebP (правый клик → Convert to WebP) — уменьшение веса без видимой потери качества.
  • Векторы: используйте для простых интерфейсных иконок; избегайте векторов для сложных иллюстраций или фото.
  • Размеры: готовьте исходники под реальные dp-размеры, не храните 4k-изображения там, где нужен 48dp.
  • Хранение launcher icon в mipmap важно, потому что лаунчер может обращаться к mipmap-ресурсам независимо от плотности приложения.
  • Проверяйте адаптивную иконку для всех форм: foreground должен быть читаем на разном фоне, не используйте мелкий текст.

Перед релизом смотрите иконку в списке приложений на реальном устройстве — контраст и размер часто кажутся другими, чем в превью.

Частые ошибки

  • Неправильные имена файлов (пробелы, заглавные).
  • Хранение launcher icon в drawable вместо mipmap.
  • Отсутствие наборов под разные плотности → размытые иконки.
  • Использование PNG вместо вектора для простых иконок.
  • Лаунчер кэширует иконки — кажется, что обновление не сработало.

FAQ

  • Где хранить adaptive icon?
    • В mipmap-anydpi-v26 (foreground/background) и в mipmap-* для legacy.
  • Можно ли использовать SVG?
    • Android Studio импортирует SVG как Vector Asset (.xml). Проверяйте сложные SVG — не все конструкции поддерживаются.
  • Почему иконка размыта на устройстве?
    • Либо неправильно подготовлены растровые варианты, либо используется mdpi в xxxhdpi-экранe. Решение: вектор или наборы под плотности.
  • Как заставить устройство показать новую иконку?
    • Переустановите приложение, перезапустите устройство или очистите данные лаунчера.

Чек-лист перед релизом:

  • Есть адаптивная иконка и legacy-версии.
  • Имена ресурсов осмысленные и в lower_snake_case.
  • Большие изображения оптимизированы (WebP).
  • Нет неиспользуемых или дублирующих ресурсов.

Если соблюдать эти простые правила и использовать мастера Image Asset и Vector Asset, работа с иконками и изображениями в Android Studio станет предсказуемой и удобной.