Дизайн 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"
}
Интеграция динамических цветов
Инструкции по интеграции динамических цветов приведены в руководстве по внедрению Material You.
Часто задаваемые вопросы
Что включает 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.