Kolory dynamiczne

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 kolor system_accent3_0 podobny do koloru system_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?

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.