应用深浅色适配
概念
- 当系统存在深浅两种显示模式,为提升用户体验,应用适配深浅色模式。从应用与系统配置关联的角度,适配深浅色模式可以分为以下两种情况
- 应用跟随系统的深浅色模式
- 自定义的深浅色资源
自定义资源实现
- 在resource目录下增加深色模式限定词目录(命令dark),只有应用存在dark资源文件夹,应用才会被系统识别为存在深色模式
图片资源适配
- 采用资源限定词目录的方式,参照颜色适配方法,将深色模式下对应的同名(跟浅色适配下同名)放到dark/media中
- 对于SVG格式的一些简单的图标,可以使用fillColor属性配合系统资源改变图片的绘制颜色
系统默认判断规则
- 如果应用工程dark目录下有深色资源,则系统内置组件在深色模式下回自动切换为深色
- 如果没有任何深色资源,则系统内置组件在深色模式下保持浅色模式体验
应用主动设置深浅模式
- 应用默认配置为跟随系统切换深浅色模式,如果不希望应用跟随系统深浅色模式变化,可主动设置应用的深浅色风格,设置后,应用的深浅色模式固定,不会随着系统改变
样例
跟随系统
- 在EntryAbility中的onCreat进行设置(前提是resource目录下设置了深色模式下限定词目录)
this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET)
app应用中自定义
- 前提也是在resource下设置了深色模式下限定词目录
Button('点击更换app——color模式')
.onClick(() => {
this.flg = !this.flg
if (this.flg) {
getContext(this).getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_DARK)
} else {
getContext(this).getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT)
}
})