动态配色

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 包含哪些内容?

动态色调调色板是如何生成的?

动态色调调色板必须基于单一源颜色生成,这种颜色应该使用 com.android.systemui.monet.ColorScheme#getSeedColors(可提供多种有效的源颜色)从壁纸中派生。如果提供的颜色都不符合源颜色要求,单一源颜色应使用值 0xFF1B6EF3