Динамический цвет

Material You design был запущен в версии 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 .