最近看了洋佬的公众号,谈到深色模式,于是自己在kotlin上面实现了一下,下面是效果图
安卓10叫这个为Dark theme,切换为深色的时候可以减少手机功耗,在暗的环境里更容易使用
1.继承DayNight主题
2.在res下面新建values-night文件,然后把深色的资源放到里面
drawable资源也一样,对应的drawable-night-xhdpi等
3.在baseactivity里面监听变化,设置主题
这里有一点需要注意,recreate重新创建视图,所以在有些地方需要判断类型空指针,不然会报错
这里我在初始化的地方打印了log,可以看到,每次切换模式都会伴随着视图重建
效果图有点丑,因为颜色值基本取反的,自己瞎配置的颜色也只能含着泪自己看了,这里就ok了,很简单