Kotlin 深色模式(夜间模式)

最近看了洋佬的公众号,谈到深色模式,于是自己在kotlin上面实现了一下,下面是效果图

安卓10叫这个为Dark theme,切换为深色的时候可以减少手机功耗,在暗的环境里更容易使用

1.继承DayNight主题

 

2.在res下面新建values-night文件,然后把深色的资源放到里面

Kotlin 深色模式(夜间模式)_第1张图片

 

drawable资源也一样,对应的drawable-night-xhdpi等

3.在baseactivity里面监听变化,设置主题

Kotlin 深色模式(夜间模式)_第2张图片

 

这里有一点需要注意,recreate重新创建视图,所以在有些地方需要判断类型空指针,不然会报错

这里我在初始化的地方打印了log,可以看到,每次切换模式都会伴随着视图重建

Kotlin 深色模式(夜间模式)_第3张图片

 

效果图有点丑,因为颜色值基本取反的,自己瞎配置的颜色也只能含着泪自己看了,这里就ok了,很简单

GitHub:https://github.com/1024477951/KotlinStrong

你可能感兴趣的:(Kotlin 深色模式(夜间模式))