![]()
Ikona adaptacyjna, czyli AdaptiveIconDrawable, może być wyświetlana inaczej
w zależności od możliwości urządzenia i motywu wybranego przez użytkownika. Ikony adaptacyjne są używane głównie przez program uruchamiający na ekranie głównym, ale można ich też używać w skrótach, aplikacji Ustawienia, oknach udostępniania i na ekranie podglądu. Ikony adaptacyjne są używane na wszystkich urządzeniach z Androidem.
W przeciwieństwie do obrazów bitmapowych ikony adaptacyjne mogą dostosowywać się do różnych przypadków użycia:
Różne kształty: ikona adaptacyjna może przyjmować różne kształty na różnych modelach urządzeń. Na przykład na jednym urządzeniu OEM może mieć kształt koła, a na innym – kwadratu z zaokrąglonymi rogami (kształt pośredni między kwadratem a kołem). Każdy producent OEM musi udostępnić maskę, której system używa do renderowania wszystkich ikon adaptacyjnych w tym samym kształcie.
Rysunek 1. Ikony adaptacyjne obsługują różne maski, które różnią się w zależności od urządzenia. Efekty wizualne: ikona adaptacyjna obsługuje różne atrakcyjne efekty wizualne, które są wyświetlane, gdy użytkownicy umieszczają lub przenoszą ikonę na ekranie głównym.
Rysunek 2. Przykłady efektów wizualnych wyświetlanych przez ikonę adaptacyjną. Motywy użytkownika: począwszy od Androida 13 (poziom API 33), użytkownicy mogą stosować motywy do ikon adaptacyjnych. Jeśli użytkownik włączy ikony aplikacji z motywem w ustawieniach systemu, a program uruchamiający obsługuje tę funkcję, system użyje kolorów wybranej tapety i motywu, aby określić kolor ikony aplikacji, która ma warstwę
monochromew ikonie adaptacyjnej. Począwszy od Androida 16 QPR 2, Android automatycznie stosuje motywy do ikon aplikacji, które nie mają własnych ikon.
Rysunek 3. Ikony adaptacyjne dziedziczące tapetę i motywy użytkownika. W tych przypadkach ekran główny nie wyświetla ikony aplikacji z motywem, ale ikonę adaptacyjną lub standardową:
- Jeśli użytkownik nie włączy ikon aplikacji z motywem.
- Jeśli Twoja aplikacja nie ma monochromatycznej ikony, a urządzenie użytkownika działa w starszej wersji Androida niż Android 16 QPR 2.
- Jeśli program uruchamiający nie obsługuje ikon aplikacji z motywem.
Projektowanie ikon adaptacyjnych
Aby ikona adaptacyjna obsługiwała różne kształty, efekty wizualne i motywy użytkownika, jej projekt musi spełniać te wymagania:
Musisz podać 2 warstwy dla kolorowej wersji ikony: jedną na pierwszym planie i jedną w tle. Warstwy mogą być wektorowe lub bitmapowe, ale preferowane są wektorowe.
Rysunek 4. Ikony adaptacyjne zdefiniowane za pomocą warstw pierwszego planu i tła. Przedstawiona bezpieczna strefa o wymiarach 66 x 66 dp to obszar, który nigdy nie jest przycinany przez maskę w kształcie zdefiniowaną przez producenta OEM.
Rysunek 5. Przykład tego, jak warstwy pierwszego planu i tła wyglądają razem z zastosowaną maską w kształcie koła. Jeśli chcesz obsługiwać motywy użytkownika w ikonach aplikacji, podaj jedną warstwę dla monochromatycznej wersji ikony.
Rysunek 6. Monochromatyczna warstwa ikony (po lewej) z przykładami podglądu kolorów (po prawej). Ustaw rozmiar wszystkich warstw na 108 x 108 dp.
Używaj ikon z wyraźnymi krawędziami. Warstwy nie mogą mieć masek ani cieni w tle wokół konturu ikony.
Używaj logo o wymiarach co najmniej 48 x 48 dp. Nie może ono przekraczać 66 x 66 dp, ponieważ wewnętrzny obszar ikony o wymiarach 66 x 66 dp jest widoczny w zamaskowanym obszarze.
Zewnętrzne 18 dp z każdej z 4 stron warstw jest zarezerwowane na maskowanie i tworzenie efektów wizualnych, takich jak paralaksa czy pulsowanie.
Aby dowiedzieć się, jak tworzyć ikony adaptacyjne w Android Studio, zapoznaj się z szablonem Figma ikony aplikacji na Androida lub dokumentacją Android Studio dotyczącą tworzenia ikon programu uruchamiającego. Przeczytaj też post na blogu Designing Adaptive Icons.
Dodawanie ikony adaptacyjnej do aplikacji
Ikony adaptacyjne, podobnie jak ikony nieadaptacyjne, są określane za pomocą
android:icon atrybutu w pliku manifestu aplikacji
manifest.
Opcjonalny atrybut android:roundIcon jest używany przez programy uruchamiające, które reprezentują aplikacje za pomocą okrągłych ikon. Może być przydatny, jeśli ikona aplikacji zawiera okrągłe tło jako podstawowy element projektu. Takie programy uruchamiające muszą generować ikony aplikacji, stosując okrągłą maskę do android:roundIcon. Dzięki temu możesz zoptymalizować wygląd ikony aplikacji, np. nieznacznie powiększając logo i upewniając się, że po przycięciu okrągłe tło będzie zajmować cały obszar.
Ten fragment kodu ilustruje oba te atrybuty, ale większość aplikacji określa tylko android:icon:
<application ... android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" ...> </application>
Następnie zapisz ikonę adaptacyjną w res/mipmap-anydpi-v26/ic_launcher.xml. Użyj
elementu <adaptive-icon>, aby zdefiniować zasoby warstw pierwszego planu, tła i
monochromatycznej dla ikon. Elementy wewnętrzne <foreground>,
<background> i <monochrome> obsługują obrazy wektorowe i bitmapowe.
Ten przykład pokazuje, jak zdefiniować <foreground>, <background> i
<monochrome> wewnątrz <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> ...
Warstwy pierwszego planu i monochromatyczna używają tego samego elementu rysowalnego. W razie potrzeby możesz jednak utworzyć osobne elementy rysowalne dla każdej warstwy.
Możesz też zdefiniować elementy rysowalne jako elementy, wstawiając je do elementów
<foreground>, <background> i <monochrome>. Poniższy fragment kodu pokazuje, jak to zrobić w przypadku obiektu rysowalnego pierwszego planu.
<?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ć tę samą maskę i efekt wizualny do skrótów co do zwykłych ikon adaptacyjnych, użyj jednej z tych metod:
- W przypadku skrótów statycznych użyj elementu
<adaptive-icon>. - W przypadku skrótów dynamicznych podczas ich tworzenia wywołaj metodę
createWithAdaptiveBitmap().
Więcej informacji o implementowaniu ikon adaptacyjnych znajdziesz w artykule Implementing Adaptive Icons. Więcej informacji o skrótach znajdziesz w artykule Omówienie skrótów aplikacji.
Dodatkowe materiały
Więcej informacji o projektowaniu i implementowaniu ikon adaptacyjnych znajdziesz w tych materiałach:
- Szablon strony społeczności Figma
- Understanding Android Adaptive Icons
- Designing Adaptive Icons
- Implementing Adaptive Icons
- Tworzenie ikon aplikacji w Android Studio
- Specyfikacja ikon używanych w Google Play