为使用 Glance 编写的 App Widget 在夜间模式下指定不同的颜色
Specify different colors in night mode for App Widget written with Glance
如何在 Glance AppWidget 上指定白天与夜间模式的颜色,并让系统在用户打开或关闭夜间模式时选择正确的颜色?
您有两个选择:
- 您可以定义一个在夜间模式下变化的资源(例如在
res/values-night/colors.xml
或 res/color-night/mycolor.xml
中定义)并将该资源与 ColorProvider(R.color.mycolor)
. 一起使用
glance-appwidget
定义了一个新函数 ColorProvider(day: Color, night: Color)
,它同时采用白天和夜晚的颜色,并根据配置应用正确的颜色。
备注
在Android12之前,创建App Widget时必须完全解析颜色,这意味着颜色将取决于app widget提供者生成App Widget时是否激活夜间模式,并且对此无能为力。但是从Android12开始,颜色会在App Widget渲染时由框架解析,所以当用户打开或关闭夜间模式时,颜色会立即改变。
如何在 Glance AppWidget 上指定白天与夜间模式的颜色,并让系统在用户打开或关闭夜间模式时选择正确的颜色?
您有两个选择:
- 您可以定义一个在夜间模式下变化的资源(例如在
res/values-night/colors.xml
或res/color-night/mycolor.xml
中定义)并将该资源与ColorProvider(R.color.mycolor)
. 一起使用
glance-appwidget
定义了一个新函数ColorProvider(day: Color, night: Color)
,它同时采用白天和夜晚的颜色,并根据配置应用正确的颜色。
备注
在Android12之前,创建App Widget时必须完全解析颜色,这意味着颜色将取决于app widget提供者生成App Widget时是否激活夜间模式,并且对此无能为力。但是从Android12开始,颜色会在App Widget渲染时由框架解析,所以当用户打开或关闭夜间模式时,颜色会立即改变。