HarmonyOS 深色模式适配,需要准备另一套资源吗?

深色模式适配,需要准备另一套资源吗?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

分两种情况:

1、app跟随系统切深色模式或者非深色模式

1.1颜色适配,自定义两套颜色资源(resources/dark/element/color.json和resources/base/element/color.json),通过$r的方式加载颜色资源的key值。通过系统资源实现,开发者可直接使用的系统预置资源,即分层参数,同一资源ID在设备类型、深浅色等不同配置下有不同的取值。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用,不需要自定义2份颜色资源,在深浅色模式下也会自动切换成不同的颜色值。https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5#resource9

1.2图片资源,采用资源限定词目录的方式。参照颜色适配的方法,需要将深色模式下对应的同名图片放到 dark/media 目录下,再通过$r的方式加载图片资源的key值,系统做深浅色模式切换时,会自动加载对应资源文件中的value值。对于 SVG 格式的一些简单图标,可以使用 fillColor 属性配合系统资源改变图片的绘制颜色。不通过两套图片资源的方式,也可以实现深浅色模式适配。

2、app不跟随系统,应用内切深色模式或非深色模式

2.1 应用通过系统接口主动设置深浅色模式,setColorMode:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-applicationcontext-V5

2.2 监听深浅色切换事件,自行实现深浅色模式:this.context.config.colorMode以及onConfigurationOnUpdate监听颜色模式。

分享
微博
QQ
微信
回复
2天前
相关问题
鸿蒙一套代码如何做到多端适配呢?
3477浏览 • 1回复 待解决
应用如何适配深色模式
1067浏览 • 1回复 待解决
应用如何适配深色模式
2325浏览 • 1回复 待解决
app适配深色浅色切换模式
1891浏览 • 1回复 待解决
hvigor如何对一套代码实现差异化打包
476浏览 • 1回复 待解决
HarmonyOS深色主题适配
412浏览 • 1回复 待解决
深色模式如何屏蔽?有人知道
344浏览 • 0回复 待解决
Java UI中WebView支持深色模式
2652浏览 • 1回复 待解决
HarmonyOS 资源适配
23浏览 • 1回复 待解决