Ikona adaptacyjna (AdaptiveIconDrawable
) może wyświetlać się różnie w zależności od możliwości urządzenia i motywu użytkownika. Ikony adaptacyjne są używane głównie w programie uruchamiającym na ekranie głównym, ale można ich też używać w skrótach, aplikacji Ustawienia, oknach udostępniania i ekranie przeglądu.
Ikona adaptacyjna może się dostosowywać do różnych zastosowań:
Różne kształty: ikona adaptacyjna może przybierać różne kształty na różnych modelach urządzeń. Na przykład na jednym urządzeniu OEM może wyświetlić się okrągły kształt, a na drugim – zaokrąglony kształt. Każdy producent oryginalnego urządzenia musi dostarczyć maskę, której system używa do renderowania wszystkich ikon adaptacyjnych o tym samym kształcie.
Efekty wizualne: ikona adaptacyjna obsługuje różne ciekawe efekty wizualne, które pojawiają się, gdy użytkownik umieści lub przesuwa ikonę po ekranie głównym.
Tworzenie tematów użytkowników: od Androida 13 (poziom interfejsu API 33) użytkownicy mogą tworzyć motywy dostosowane do swoich ikon adaptacyjnych. Jeśli użytkownik włączy ikony aplikacji z motywem, włączając przełącznik Ikony z motywem w ustawieniach systemu, a program uruchamiający obsługuje tę funkcję, system określa kolor odcienia na podstawie kolorów wybranej przez niego tapety i motywu.
W tych przypadkach na ekranie głównym nie pojawia się ikona aplikacji z motywem, tylko ikona aplikacji adaptacyjnej lub standardowej:
- Jeśli użytkownik nie włączy tematycznych ikon aplikacji.
- Jeśli aplikacja nie ma monochromatycznej ikony:
- Jeśli launcher nie obsługuje tematycznych ikon aplikacji:
Projektowanie adaptacyjnych ikon
Aby ikona adaptacyjna obsługiwała różne kształty, efekty wizualne i motywy użytkowników, projekt musi spełniać te wymagania:
Musisz udostępnić dwie warstwy dla wersji kolorowej ikony: jedną dla pierwszego planu i jedną dla tła.
Jeśli chcesz obsługiwać personalizowanie ikon aplikacji przez użytkowników, udostępnij jedną warstwę dla wersji monochromatycznej ikony.
Rozmiar wszystkich warstw to 108 x 108 dp.
Używaj ikon z czystymi krawędziami. Wokół ikony nie mogą być maski ani cienie tła.
Użyj logo o rozmiarze co najmniej 48 x 48 dp. Nie może on przekraczać 66 x 66 dp, ponieważ wewnętrzny obszar 66 x 66 dp ikony pojawia się w zamaskowanym widocznym obszarze.
Zewnętrzne 18 dp po każdej z 4 stron warstw jest zarezerwowane na maskowanie i tworzenie efektów wizualnych, takich jak paralaksa lub pulsowanie.
Aby dowiedzieć się, jak tworzyć ikony adaptacyjne w Android Studio, zapoznaj się z szablonem ikony aplikacji na Androida Figma lub dokumentacją Android Studio dotyczącą tworzenia ikon programu uruchamiającego. Przeczytaj też post na blogu Projektowanie ikon adaptacyjnych.
Dodaj do aplikacji ikonę adaptacyjną
Aby dodać do aplikacji ikonę adaptacyjną, zaktualizuj atrybut android:icon
w pliku manifestu aplikacji, aby określić rysowalny zasób. Możesz też zdefiniować zasób rysowalny ikony za pomocą atrybutu android:roundIcon
, ale tylko wtedy, gdy potrzebujesz innego zasobu ikony w przypadku masek okrągłych (np. gdy promowanie marki opiera się na okrągłym kształcie).
Poniższy fragment kodu ilustruje oba te atrybuty, ale większość aplikacji określa tylko atrybut android:icon
:
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...> </application>
Następnie w res/mipmap-anydpi-v26/ic_launcher.xml
utwórz alternatywne, rysowalne zasoby w aplikacji, aby zapewnić zgodność wsteczną z Androidem 8.0 (poziom interfejsu API 26). Za pomocą elementu <adaptive-icon>
możesz określać elementy rysowalne na potrzeby ikon na pierwszym planie, w tle i warstwy monochromatyczne. Elementy wewnętrzne <foreground>
, <background>
i <monochrome>
obsługują atrybut android:drawable
.
Poniższy przykład pokazuje, jak zdefiniować elementy <foreground>
, <background>
i <monochrome>
w <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" /> // Starting with Android 13 (API level 33), you can opt-in to providing a // <monochrome> drawable. <monochrome android:drawable="@drawable/ic_launcher_monochrome" /> </adaptive-icon> ...
Elementy rysowalne możesz też definiować jako elementy, umieszczając je w elementach <foreground>
, <background>
i <monochrome>
. Poniższy fragment kodu pokazuje, jak można to zrobić przy użyciu elementu rysowalnego na pierwszym planie.
<?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> ...
Jeśli chcesz zastosować do skrótów tę samą maskę i efekt wizualny co zwykłe ikony adaptacyjne, użyj jednej z tych metod:
- W przypadku skrótów statycznych użyj elementu
<adaptive-icon>
. - W przypadku skrótów dynamicznych wywołaj metodę
createWithAdaptiveBitmap()
podczas ich tworzenia.
Więcej informacji o wdrażaniu ikon adaptacyjnych znajdziesz w artykule o implementowaniu ikon adaptacyjnych. Więcej informacji o skrótach znajdziesz w omówieniu skrótów do aplikacji.
Dodatkowe materiały
Dodatkowe informacje o projektowaniu i implementowaniu ikon adaptacyjnych znajdziesz w materiałach poniżej.
- Szablon strony społeczności Figma
- Ikony adaptacyjne na Androidzie
- Projektowanie ikon adaptacyjnych
- Wdrażanie ikon adaptacyjnych
- Tworzenie ikon aplikacji w Android Studio
- Specyfikacja ikon używanych w Google Play