为使用 Glance 编写的 App Widget 在夜间模式下指定不同的颜色

Specify different colors in night mode for App Widget written with Glance

如何在 Glance AppWidget 上指定白天与夜间模式的颜色,并让系统在用户打开或关闭夜间模式时选择正确的颜色?

您有两个选择:

  1. 您可以定义一个在夜间模式下变化的资源(例如在 res/values-night/colors.xmlres/color-night/mycolor.xml 中定义)并将该资源与 ColorProvider(R.color.mycolor).
  2. 一起使用
  3. glance-appwidget 定义了一个新函数 ColorProvider(day: Color, night: Color),它同时采用白天和夜晚的颜色,并根据配置应用正确的颜色。

备注

在Android12之前,创建App Widget时必须完全解析颜色,这意味着颜色将取决于app widget提供者生成App Widget时是否激活夜间模式,并且对此无能为力。但是从Android12开始,颜色会在App Widget渲染时由框架解析,所以当用户打开或关闭夜间模式时,颜色会立即改变。