Projekt Material You został wprowadzony wraz z Androidem 12, a potem rozszerzony w Androidzie 13.
Ta strona dotyczy aktualizacji logiki Material You, które ułatwiają integrację z bardziej rozbudowaną obsługą kolorów dynamicznych.
Dynamiczne palety kolorów
Od Androida 12 obsługiwane są te dynamiczne palety kolorów:
Każdy z nich składa się z zestawu 13 kolorów z zdefiniowanymi różnymi wartościami luminescencji, jak opisano w artykule R.color
, ale z niezdefiniowanymi wartościami odcienia i chromatyczności, które mogą być dynamicznie generowane przez system Android w czasie wykonywania.
Style motywu dla koloru dynamicznego
Od Androida 13 obsługiwane są 6 różnych stylów motywów z wariantami algorytmu dynamicznych kolorów, które spełniają potrzeby deweloperów i oczekywania dotyczące kontrastu. Te kolory są używane do generowania 65 dynamicznych kolorów używanych przez aplikacje:
TONAL_SPOT
to paleta o średniej intensywności, która zawiera kolorsystem_accent3_0
podobny do kolorusystem_accent1_0
(przeniesiony z wersji Androida 12 i nieznacznie zmieniony).VIBRANT
to żywa paleta, która harmonijnie łączy się w subtelne przejścia między kolorami.EXPRESSIVE
to żywa paleta kolorów, która łączy nieoczekiwane i niepowtarzalne akcenty.SPRITZ
to paleta o niskiej intensywności, która tworzy delikatne przenikanie między kolorami.RAINBOW
używa zarówno akcentów chromatycznych, jak i neutralnych powierzchni, aby zapewnić użytkownikom subtelniejsze wrażenia kolorystyczne.- NIE POLECAMY stosowania tej metody do wyodrębniania kolorów z tapety. Zamiast tego należy używać statycznych motywów kolorów.
FRUIT_SALAD
zawiera 2 kolory, aby umożliwić użytkownikom wyrażanie siebie.- NIE POLECAMY stosowania tej metody do wyodrębniania kolorów z tapety. Zamiast tego należy używać statycznych motywów kolorów.
Motyw systemu jest określany przez to samo ustawienie, co w Androidzie 12, czyli Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
. W przypadku Androida 13 do wygenerowania 65 palet kolorów potrzebny jest tylko 1 klucz w pliku JSON, który wysyła kolor źródłowy:
{
"android.theme.customization.system_palette":"746BC1"
}
Domyślny styl motywu to TONAL_SPOT
, ale możesz opcjonalnie określić jeden z innych stylów motywu za pomocą dodatkowego klucza w powyższym pliku JSON:
{
"android.theme.customization.system_palette":"746BC1"
"android.theme.customization.theme_style":"EXPRESSIVE"
}
Integracja kolorów dynamicznych
Wskazówki dotyczące integrowania dynamicznych kolorów znajdziesz w artykule Integrowanie Material You Design.
Najczęstsze pytania
Co zawiera interfejs API dynamicznej palety barw?
Dostępnych jest pięć palet tonalnych:
Każda paleta tonalna ma 13 wartości kolorów, które kończą się indeksami 0, 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 i 1000.
Wygenerowany interfejs API to kombinacja nazwy palety barw tonalnych zakończona indeksem. Na przykład:
R.color#system_accent1_10
Jak generowana jest dynamiczna paleta tonalna?
Dynamiczna paleta tonalna musi być generowana na podstawie jednego źródłowego koloru, który powinien być wyprowadzony z tapety za pomocą funkcji com.android.systemui.monet.ColorScheme#getSeedColors
, która zapewnia wiele prawidłowych kolorów źródłowych. Jeśli żaden z podanych kolorów nie spełnia wymagań dotyczących koloru źródłowego, należy użyć wartości 0xFF1B6EF3
.