AndroidQ亮点之一:深色主题

今天我们就来了解一下AndroidQ的亮点之一——深色主题,它作为官方主推的亮点之一,有如下几个优点:
1、可大幅减少耗电量(具体取决于设备的屏幕技术)。
2、为弱视以及对强光敏感的用户提高可视性。
3、让所有人都可以在光线较暗的环境中更轻松地使用设备
我们在设置->显示->深色模式可以找到它的开关。
那是不是所有app都需要适配这个模式呢,答案是否定的,只有你的app想要给用户深浅模式的选择时,才需要进行适配(当然这只是深浅模式的一种实现方式)。
首先我们介绍一种最简单的适配方案,如果你的app当前是浅色主题背景(比如Theme.AppCompat.Light),那么你可以直接在其主题设置中加上下面的设置

android:forceDarkAllowed="true"

如果你直接在value/style.xml文件中加入这个配置,系统会提示你把配置放到values-v29目录下,因为这个配置只会在target29的机器上生效,同时,记得把compileSdkVersion指定为29。完了之后你就可以重新编译了。安装app,打开系统设置,切换深色模式,你将看到一套深色的UI。
以上是系统自动帮你做的适配,但如果你使用的主题是深色主题或者系统适配出来的效果达不到你的预期,那么你可以选择下面一种方式手动适配。
首先,你必须将应用的主题背景(通常可在 res/values/styles.xml 中找到)设置为继承 DayNight 主题背景:

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

然后,就是对资源目录进行适配,通常是在资源文件夹的名字加-night,比如values-night,然后,我们就可以在这个文件夹下将需要适配的文件进行拷贝,替换。举个例子。比如现在我们有个Textview,它的textColor属性我采用软编码的方式,在color.xml文件中定义为id为main_text_color的颜色资源,如果我需要对这个Textview的textColor进行适配,那我就需要在values-night/color.xml中也定义一个id为main_text_color的颜色资源,然后给它指定深色模式下的颜色值。drawable下的文件适配也是同理。
默认情况下,app的深浅模式是跟随系统的,我们也可以在app内部对深浅模式进行指定,如下

AppCompatDelegate.setDefaultNightMode();

它接受4个int型的参数:

浅色 - MODE_NIGHT_NO
深色 - MODE_NIGHT_YES
由省电模式设置 - MODE_NIGHT_AUTO_BATTERY
系统默认 - MODE_NIGHT_FOLLOW_SYSTEM

默认情况下,深浅模式切换会导致界面的重新创建(和语言切换或横竖屏切换一样 ),所以如果我们有不希望重新创建的界面,可以在清单文件中对应的组件配置uiMode,如下

<activity
android:name=".MyActivity"
android:configChanges="uiMode" />

然后在MyActivity重写onConfigurationChanged() 方法,这样,当有深浅模式切换时,界面就不会重新创建,而是回调onConfigurationChanged() 方法,你需要自己去处理相应的逻辑,我们可以通过如下方式获取当前的系统设置的深浅模式:

int currentNightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
switch (currentNightMode) {
case Configuration.UI_MODE_NIGHT_NO:
// Night mode is not active, we're using the light theme
break;
case Configuration.UI_MODE_NIGHT_YES:
// Night mode is active, we're using dark theme
break;
}

OK,到这里,AndroidQ的深浅模式适配基本就完成了。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

AndroidQ亮点之一:深色主题

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » AndroidQ亮点之一:深色主题
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏