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 barw,

Od Androida 12 obsługiwane są te dynamiczne palety barw:

Każdy z nich składa się z zestawu 13 kolorów z zdefiniowanymi różnymi wartościami luminancji, 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ługiwanych jest 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 paleta żywych kolorów, w której subtelnie przechodzą one w siebie.
  • EXPRESSIVE to paleta o wysokiej intensywności, która łączy nieoczekiwane i niepowtarzalne akcenty kolorów.
  • SPRITZ to paleta o niskiej intensywności, która tworzy łagodne przejścia 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 udostępnia 2 kolory tonu, aby umożliwić użytkownikom większą swobodę wyrażania 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 wymagany jest tylko 1 klucz w pliku JSON, który wysyła kolor źródłowy, aby wygenerować 65 palet kolorów:

{
    "android.theme.customization.system_palette":"746BC1"
}

Domyślny styl motywu to TONAL_SPOT, ale możesz opcjonalnie określić jeden z pozostałych stylów motywu za pomocą dodatkowego klucza w powyższym kodzie JSON:

{
    "android.theme.customization.system_palette":"746BC1"
    "android.theme.customization.theme_style":"EXPRESSIVE"
}

Integracja kolorów dynamicznych

Wytyczne dotyczące integracji dynamicznych kolorów znajdziesz w artykule Integracja interfejsu Material You.

Najczęstsze pytania

Co zawiera interfejs API dynamicznej palety barw?

Jak generowana jest dynamiczna paleta barw?

Dynamiczna paleta tonalna musi być generowana na podstawie jednego koloru źródłowego, 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.