Дизайн Material You был запущен с выходом Android 12 и расширен в Android 13.
На этой странице основное внимание уделено обновлениям логики Material You, которые помогут вам интегрировать более богатую поддержку динамических цветов.
Динамические цветовые тональные палитры
Начиная с Android 12 поддерживаются следующие динамические цветовые тональные палитры:
Каждый из них состоит из набора из 13 цветов с определенными различными значениями яркости, как описано в R.color
, но с неопределенными значениями оттенка и цветности, которые могут динамически генерироваться системой Android во время выполнения.
Тематические стили для динамического цвета
Начиная с Android 13, поддерживаются шесть различных стилей тем с вариациями алгоритма динамической цветовой палитры, отвечающими потребностям разработчиков и ожиданиям по контрастности. Они перечислены для генерации 65 динамических цветов, используемых приложениями:
-
TONAL_SPOT
— палитра средней яркости, использующая цветsystem_accent3_0
, аналогичный цветуsystem_accent1_0
(перенесен из версии Android 12 и немного скорректирован). -
VIBRANT
— это яркая палитра, в которой гармонично сочетаются тонкие переходы между цветами. -
EXPRESSIVE
— это яркая палитра, сочетающая в себе неожиданные и уникальные акцентные цвета. -
SPRITZ
— это палитра с низкой интенсивностью цвета, создающая мягкие переходы между цветами. -
RAINBOW
использует как хроматические акценты, так и нейтральные поверхности, чтобы создать для пользователей более утонченное цветовое восприятие.- НЕ РЕКОМЕНДУЕТСЯ использовать этот метод с извлечением цвета на основе обоев. Вместо этого его следует использовать со статическими цветовыми темами.
-
FRUIT_SALAD
предлагает два цветовых тона , чтобы дать пользователям больше самовыражения.- НЕ РЕКОМЕНДУЕТСЯ использовать этот метод с извлечением цвета на основе обоев. Вместо этого его следует использовать со статическими цветовыми темами.
Системная тема управляется тем же параметром, что и в Android 12: Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
. В Android 13 для неё требуется только один ключ в JSON-файле, который отправляет исходный цвет для генерации 65 цветовых палитр:
{
"android.theme.customization.system_palette":"746BC1"
}
Стиль темы по умолчанию — TONAL_SPOT
, но при желании вы можете указать один из других стилей темы с помощью дополнительного ключа в JSON выше:
{
"android.theme.customization.system_palette":"746BC1"
"android.theme.customization.theme_style":"EXPRESSIVE"
}
Интеграция динамического цвета
Инструкции по интеграции динамического цвета см. в разделе Интеграция материалов, которые вы разрабатываете .
Часто задаваемые вопросы (FAQ)
Что включает в себя API динамической тональной палитры?
Существует пять тональных палитр:
Каждая тональная палитра имеет 13 цветовых значений, заканчивающихся индексами 0, 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 и 1000.
Полученный API представляет собой комбинацию имени тоновой палитры, заканчивающуюся индексом. Например:
R.color#system_accent1_10
Как формируется динамическая тональная палитра?
Динамическая тоновая палитра должна быть создана на основе одного исходного цвета, полученного из обоев с помощью com.android.systemui.monet.ColorScheme#getSeedColors
, который предоставляет несколько допустимых исходных цветов. Если ни один из предоставленных цветов не соответствует требованиям исходного цвета, для исходного цвета следует использовать значение 0xFF1B6EF3
.