
Адаптивная иконка, или AdaptiveIconDrawable , может отображаться по-разному в зависимости от возможностей конкретного устройства и пользовательской темы оформления. Адаптивные иконки в основном используются в лаунчере на главном экране, но они также могут использоваться в ярлыках, приложении «Настройки», диалоговых окнах обмена данными и на экране обзора. Адаптивные иконки используются на всех форм-факторах Android.
В отличие от растровых изображений , адаптивные значки могут адаптироваться к различным сценариям использования:
Различные формы: адаптивный значок может отображать различные формы на разных моделях устройств. Например, на одном устройстве от производителя он может отображаться в виде круга, а на другом — в виде скругленного квадрата (форма, находящаяся между квадратом и кругом). Каждый производитель устройств должен предоставить маску, которую система использует для отображения всех адаптивных значков с одинаковой формой.

Рисунок 1. Адаптивные значки поддерживают различные маски, которые различаются в зависимости от устройства. Визуальные эффекты: адаптивная иконка поддерживает множество привлекательных визуальных эффектов, которые отображаются, когда пользователи размещают или перемещают иконку по главному экрану.

Рисунок 2. Примеры визуальных эффектов, отображаемых адаптивной иконкой. Настройка тем оформления пользователем: начиная с Android 13 (уровень API 33), пользователи могут настраивать темы оформления своих адаптивных значков. Если пользователь включает настройку тем оформления значков приложений в системных настройках, и лаунчер поддерживает эту функцию, система использует цветовую гамму выбранных пользователем обоев и темы для определения оттенка значков приложений, имеющих
monochromeслой в своих адаптивных значках. Начиная с Android 16 QPR 2, Android автоматически настраивает темы оформления значков приложений, которые не предоставляют свои собственные.
Рисунок 3. Адаптивные значки, наследующие настройки обоев и тем пользователя. В следующих случаях на главном экране не отображается тематический значок приложения, а вместо него показывается адаптивный или стандартный значок приложения:
- Если пользователь не включил тематические значки приложений.
- Если ваше приложение не предоставляет монохромную иконку, а устройство пользователя работает на более ранней версии Android, чем Android 16 QPR 2.
- Если лаунчер не поддерживает тематические значки приложений.
Адаптивные иконки для дизайна
Для того чтобы ваша адаптивная иконка поддерживала различные формы, визуальные эффекты и пользовательские темы оформления, дизайн должен соответствовать следующим требованиям:
Для цветной версии иконки необходимо предоставить два слоя: один для переднего плана и один для фона. Слои могут быть как векторными, так и растровыми, хотя предпочтительнее использовать векторные.

Рисунок 4. Адаптивные значки, определенные с использованием слоев переднего и заднего плана. Изображенная безопасная зона размером 66x66 — это область, которая никогда не обрезается маской заданной формы, определенной производителем оборудования. 
Рисунок 5. Пример того, как передний и задний планы выглядят вместе с применением круглой маски. Если вы хотите поддерживать пользовательскую настройку тем оформления значков приложений, предоставьте один слой для монохромной версии значка.

Рисунок 6. Монохромный слой иконок (слева) с примерами предварительного просмотра цветов (справа). Размер всех слоев — 108x108 пикселей.
Используйте значки с четкими краями. Слои не должны иметь масок или фоновых теней вокруг контура значка.
Используйте логотип размером не менее 48x48 пикселей. Его размер не должен превышать 66x66 пикселей, поскольку внутренние 66x66 пикселей значка находятся внутри замаскированного области просмотра.
Внешние 18 децибел с каждой из четырех сторон слоев зарезервированы для маскирования и создания визуальных эффектов, таких как параллакс или пульсация.
Чтобы узнать, как создавать адаптивные значки с помощью Android Studio, ознакомьтесь с шаблоном значка приложения Android в Figma или документацией Android Studio по созданию значков для запуска приложений . Также прочитайте статью в блоге «Разработка адаптивных значков» .
Добавьте адаптивную иконку в свое приложение.
Адаптивные значки, как и неадаптивные, указываются с помощью атрибута android:icon в манифесте приложения .
Необязательный атрибут android:roundIcon используется лаунчерами, представляющими приложения с круглыми значками, и может быть полезен, если значок вашего приложения включает круглый фон в качестве основной части своего дизайна. Такие лаунчеры обязаны генерировать значки приложений, применяя круглую маску к android:roundIcon , и эта гарантия может позволить вам оптимизировать внешний вид значка вашего приложения, например, немного увеличив логотип и обеспечив, чтобы при обрезке круглый фон занимал всю площадь.
Приведённый ниже фрагмент кода иллюстрирует оба этих атрибута, но большинство приложений указывают только android:icon :
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...> </application>
Далее сохраните адаптивную иконку в файл res/mipmap-anydpi-v26/ic_launcher.xml . Используйте элемент <adaptive-icon> для определения ресурсов переднего плана, фона и монохромного слоя для ваших иконок. Внутренние элементы <foreground> , <background> и <monochrome> поддерживают как векторные, так и растровые изображения.
В следующем примере показано, как определить элементы <foreground> , <background> и <monochrome> внутри <adaptive-icon> :
<?xml version="1.0" encoding="utf-8"?> ... <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@drawable/ic_launcher_background" /> <foreground android:drawable="@drawable/ic_launcher_foreground" /> <monochrome android:drawable="@drawable/ic_launcher_foreground" /> </adaptive-icon> ...
Для переднего и монохромного слоев используется один и тот же ресурс изображения. Однако при необходимости можно создать отдельные ресурсы изображения для каждого слоя.
Вы также можете определять графические объекты как элементы, встраивая их в элементы <foreground> , <background> и <monochrome> . В следующем фрагменте кода показан пример того, как это сделать с графическим объектом foreground.
<?xml version="1.0" encoding="utf-8"?> ... <foreground> <inset android:insetBottom="18dp" android:insetLeft="18dp" android:insetRight="18dp" android:insetTop="18dp"> <shape android:shape="oval"> <solid android:color="#0000FF" /> </shape> </inset> </foreground> ...
Если вы хотите применить к своим ярлыкам ту же маску и визуальный эффект, что и к обычным адаптивным значкам, используйте один из следующих способов:
- Для статических ярлыков используйте элемент
<adaptive-icon>. - Для создания динамических сочетаний клавиш вызовите метод
createWithAdaptiveBitmap()при их создании.
Для получения дополнительной информации о реализации адаптивных значков см. раздел «Реализация адаптивных значков ». Для получения дополнительной информации о сочетаниях клавиш см. раздел «Обзор сочетаний клавиш приложений» .
Дополнительные ресурсы
Для получения дополнительной информации о разработке и внедрении адаптивных иконок см. следующие ресурсы.
- Шаблон страницы сообщества Figma
- Понимание адаптивных иконок Android
- Разработка адаптивных иконок
- Внедрение адаптивных иконок
- Создавайте значки приложений в Android Studio.
- Технические характеристики дизайна иконок Google Play