Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Адаптивные значки

В Android 8.0 Oreo появилась поддержка адаптивных значков.

Для работы с адаптивными значками следует использовать API 26 и выше. Адаптивные значки состоят из двух слоёв: фон и основная часть.

В манифесте по-прежнему остаётся старая запись о значке.


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

Далее следует создать файл res/mipmap-anydpi-v26/ic_launcher.xml. Android Studio 3.0 генерирует подобный файл, можете изучать его.


<?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" />
</adaptive-icon>

Слои содержат векторные изображения VectorDrawable. К слову сказать, в качестве фона можно использовать просто цвет.


<background android:drawable="@color/something_white"/>

Для передней части значка можно использовать PNG-файл (используйте ресурсы mipmap).

Для совместимости с Android 7 вы должны также создать ещё один файл ic_launcher_round.xml с таким же содержанием.

Если изучить ресурс для фона, то можно заметить, что для значка используются размеры 108dp*108dp. Основной слой значка имеет те же размеры, но нужно учитывать одно обстоятельство - фоновый слой работает как маска, накладываемая на передний значок. Поэтому вы должны проследить, чтобы маска случайно не закрыла важные детали значка.

Гарантировано будет виден центр значка 66dp, а 77dp применимо к общему размеру значка.

Adaptive icon

Adaptive icon

Адаптивные значки можно применить к App Shortcut.

На эмуляторе следует выбрать устройство Pixel и включить у него режим разработчика. Далее в настройках домашнего экрана появится пункт Change icons shape.

Дополнительное чтение

Adaptive Icons | Android Developers - страница документации

Create App Icons with Image Asset Studio | Android Studio - создание адаптивных значков через Android Studio.

Implementing Adaptive Icons – Google Developers – Medium - в статье приводится пример применения линейного градиента для тени.

Designing Adaptive Icons – Google Design – Medium - ссылки на шаблоны Sketch, Illustrator и т.д.

Releases · nickbutcher/AdaptiveIconPlayground - приложение с открытым исходным кодом для удобного просмотра эффектов значков с настройками.

Шаблон для Inkscape в SVG

Реклама