Android Q深色主题适配

深色主题介绍

Android在Q版本中推出了深色主题(Dark mode),该功能提供了系统级的支持,当在设置中打开深色主题模式后,系统控件和支持深色主题模式的应用将以深色主题的形式呈现。省电方面,对于OLED屏幕来说确实会省电,因为OLED屏幕每个像素可以控制自发光,当显示部分有黑色区域时,黑色区域的像素是不发光的,以达到省电的目的。而对于LCD屏幕来说,颜色的变为黑色并不会省电。OLED和LCD屏幕技术的比较可以参考下这篇文章:OLED屏幕和LCD屏幕的区别与优劣

深色主题适配

1、设置Theme。应用的Theme继承DayNight Theme

<style name="AppTheme" parent="Theme.AppCompat.DayNight">

2、设置Theme随系统变化
在Application onCreate中初始化Night mode

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)

该模式为跟随系统设置,当在quick setting中打开或关闭深色主题开关时,应用主题也做相应的改变。另外还可以设置如下几种模式:

MODE_NIGHT_NO 一直是亮色主题

MODE_NIGHT_YES 一直是深色主题

MODE_NIGHT_AUTO_BATTERY 根据省电模式是否开启来决定深色主题是否开启

3、根据UI设计将深色主题相关的资源(color、drawable等)放在*-night目录,如values-night、drawable-night、drawable-night-xxhdpi等

可参考google示例https://github.com/googlesamples/android-DarkTheme

建议

1、尽量不要将颜色硬编码、设置成颜色变量,正常模式和深色主题模式分别定义。

2、svg xml资源可以只用一个,颜色可以在正常模式和深色主题模式下分别定义

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值