Das Material You-Design wurde mit der Veröffentlichung von Android 12 eingeführt und mit Android 13 erweitert.
Auf dieser Seite geht es hauptsächlich um Updates an der Material You-Logik, die Ihnen helfen sollen, die dynamische Farbunterstützung besser zu integrieren.
Dynamische Farbpaletten
Ab Android 12 werden die folgenden dynamischen Farbtonpaletten unterstützt:
Jede davon besteht aus 13 Farben mit verschiedenen Leuchtdichtewerten, wie unter R.color
beschrieben, aber mit nicht definierten Farbton- und Farbsättigungswerten, die vom Android-System zur Laufzeit dynamisch generiert werden können.
Designstil für dynamische Farben
Ab Android 13 werden sechs verschiedene Designstile mit Variationen des dynamischen Farbalgorithmus unterstützt, die die Anforderungen der Entwickler erfüllen und kontrastreiche Kontraste bilden. Diese sind zum Generieren der 65 dynamischen Farben aufgelistet, die von Apps verwendet werden:
TONAL_SPOT
ist eine mittelkräftige Palette mit einersystem_accent3_0
-Farbe, die dersystem_accent1_0
-Farbe aus der Android 12-Version entspricht und leicht angepasst wurde.VIBRANT
ist eine kräftige Palette, die subtile Farbverläufe harmonisch miteinander verbindet.EXPRESSIVE
ist eine kräftige Palette, die unerwartete und einzigartige Akzentfarben kombiniert.SPRITZ
ist eine Farbpalette mit geringer Leuchtkraft, die einen sanften Farbverlauf erzeugt.RAINBOW
verwendet sowohl chromatische Akzente als auch neutrale Oberflächen, um Nutzern eine subtilere Farbgebung zu bieten.- Die Verwendung dieser Funktion für die hintergrundbasierte Farbextraktion wird NICHT EMPFOHLEN. Stattdessen sollte sie für statische Farbthemen verwendet werden.
FRUIT_SALAD
bietet Zweifarbtöne, um Nutzern mehr Ausdrucksmöglichkeiten zu bieten.- Diese Option sollte NICHT EMPFOHLEN mit einer hintergrundbasierten Farbextraktion verwendet werden. Sie sollte stattdessen mit statischen Farbdesigns verwendet werden.
Das Systemdesign wird von derselben Einstellung wie in Android 12 gesteuert, nämlich Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
. Für Android 13 ist nur ein Schlüssel in der JSON-Datei erforderlich, über den die Quellfarbe gesendet wird, um die 65 Farbpaletten zu generieren:
{
"android.theme.customization.system_palette":"746BC1"
}
Der Standard-Designstil ist TONAL_SPOT
. Sie können aber optional einen der anderen Designstile mit einem zusätzlichen Schlüssel in der obigen JSON-Datei angeben:
{
"android.theme.customization.system_palette":"746BC1"
"android.theme.customization.theme_style":"EXPRESSIVE"
}
Dynamische Farben einbinden
Richtlinien zum Einbinden dynamischer Farben findest du unter Material You Design integrieren.
Häufig gestellte Fragen
Was ist in der dynamischen Tonpaletten-API enthalten?
Es gibt fünf Farbpaletten:
Jede Farbtonpalette enthält 13 Farbwerte, die auf die Indizes 0, 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 und 1000 enden.
Die resultierende API ist eine Kombination aus dem Namen der Farbpalette, der auf den Index endet. Beispiel:
R.color#system_accent1_10
Wie wird eine dynamische Farbpalette generiert?
Eine dynamische Farbpalette muss aus einer einzelnen Quellfarbe generiert werden, die mit com.android.systemui.monet.ColorScheme#getSeedColors
aus dem Hintergrundbild abgeleitet werden sollte. com.android.systemui.monet.ColorScheme#getSeedColors
bietet mehrere gültige Quellfarben. Wenn keine der angegebenen Farben die Anforderungen an die Quellfarbe erfüllt, sollte für die einzelne Quellfarbe der Wert 0xFF1B6EF3
verwendet werden.