#HarmonyOS NEXT体验官#深色模式的适配 原创
当我们开发完app后,满心欢喜以为自己开发完了。但是从设置里将浅色模式改为深色模式后再进入自己的app,发现一切都变了。所以深色模式也是需要适配的。
浅色模式
深色模式
深色模式简单理解就是以前深色的字体,现在要改成浅色字体了。
简单粗暴的解决方式
app不跟随系统的模式,那么初始化的时候,直接主动给app设置浅色模式。
但如果想要体验好一点,跟随系统的模式,就稍微复杂一点了。
颜色适配,自定义两套颜色资源(resources/dark/element/color.json和resources/base/element/color.json),通过$r的方式加载颜色资源的key值。
系统资源的使用
此种写法,需要我们程序员自己来维护两套资源。当然如果不想维护,可以使用系统资源。开发者直接使用系统预置的资源定义(即分层参数,同一资源ID在设备类型、深浅色等不同配置下有不同的取值)。也就是系统已经做好了适配,我们拿过来就用,不用管他在何种设备、何种模式。
预置资源查看:
https://gitee.com/openharmony/resources/tree/master/systemres/main/resources
这是系统帮我们做的深色适配的方案。如果我们想更个性化定制自己的UI,也可以自己根据当前模式来做不同的逻辑。
首先适配深色模式,我们需要知道当前系统到底是哪种模式?其次,在系统切换模式后,app如何立即知道并作出相应的反应。
获取当前系统的深浅模式:
监听深浅模式的实时变化:
EntryAbility.ets下监听
另外一种获取深浅色模式的方法
另外一种深浅模式监听方法(媒体查询)
最近在做深色模式,学到了