动态颜色

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