Material You 设计随 Android 12 版本一同推出,并在 Android 13 中得到了改进。
本页面将重点介绍 Material You 逻辑更新,以帮助您集成更丰富的动态配色。
动态配色调色板
从 Android 12 开始,支持以下动态配色调色板:
每种调色板都包含一组(13 种)颜色,这些颜色定义了各种亮度值(如 R.color
中所述),但未定义可由 Android 系统在运行时动态生成的色相值和色度值。
动态配色的主题样式
从 Android 13 开始,系统支持六种不同的主题样式,并且动态配色算法存在各种变体,以满足开发者需求和现实所需的对比度。下面列出了用于生成应用使用的 65 种动态配色:
TONAL_SPOT
是一种明艳度中等的调色板,使用与system_accent1_0
颜色类似的system_accent3_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 设计。
常见问题解答 (FAQ)
动态色调调色板 API 包含哪些内容?
有五种色调调色板:
每种色调调色板都具有以索引 0、10、50、100、200、300、400、500、600、700、800、900 和 1000 结尾的 13 个颜色值。
生成的 API 是色调调色板名称(以相应索引结尾)的组合。例如:
R.color#system_accent1_10
动态色调调色板是如何生成的?
动态色调调色板必须基于单一源颜色生成,这种颜色应该使用 com.android.systemui.monet.ColorScheme#getSeedColors
(可提供多种有效的源颜色)从壁纸中派生。如果提供的颜色都不符合源颜色要求,单一源颜色应使用值 0xFF1B6EF3
。