Android App Dark Theme(暗黑模式)适配指南,android实战mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v2qd7l5a-1636430548017)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d1de5811f?imageView2/0/w/1280/h/960/ignore-error/1)]
以上这张图截选自 Android 官方文档,上面提出了 Dark Theme 的三点好处:
可以帮助我们节省更多的电量
为弱视以及对强光敏感的用户提高可视性
让所有人都可以在光线较暗的环境中更轻松地使用设备
这得益于 OLED 屏幕的发展,与 LCD 不同 OLED 能够自发光,每个像素点都能发出红绿蓝三色光,而 LCD 则通过其背光层穿透有颜色的薄膜来发出不同的光。这样在暗黑模式下,OLED 就具有天生的优势,只需要关闭黑色区域的显示,就可以达到纯黑效果,而 LCD 的背光层只能发射白光,所以在显示黑色的时候,仍然会有部分光透过颜色薄膜,无法达到纯黑效果,只能达到相对黑的效果。
所以,在如今使用 OLED 屏幕的手机上面,开启暗黑模式会大幅减少手机电量的消耗。关于其中更详细的作用原理以及好处,推荐阅读来自中科院物理所公众号的文章,点击下方查看。
你喜欢“白板黑字”还是“黑板白字”
为你的 An
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》浏览器打开:qq.cn.hn/FTe 免费领取
droid App 适配暗黑模式
适配大概可以分为三部分工作:
为应用内的背景、文字、图标做适配
对在设备上显示但并不直接控制的界面进行适配,例如通知、桌面组件
在应用内为用户提供切换主题的开关选项
适配的方式也分为三种:自动适配、自定义适配、使用 Material Design Components 进行适配,为了方便说明,我这里写了一个实例代码,在没有开启适配前是这个样子的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ePpLCtqA-1636430548053)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d1e36f36b?imageView2/0/w/1280/h/960/ignore-error/1)]
自动适配 Force Dark
Android 10 提供 Force Dark 功能。此功能可让开发者快速实现深色主题背景,只需要在 style.xml 中的应用主题中添加这一行代码 android:forceDarkAllowed=“true” ,就可以完成自动适配。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uXnVyHmj-1636430548055)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d1e61a74b?imageView2/0/w/1280/h/960/ignore-error/1)]
如果您的应用采用浅色主题背景,则 Force Dark 会分析应用的每个视图,并在相应视图在屏幕上显示之前,自动应用深色主题背景。当然这里的适配工作全是系统自己做的,所以作为开发者你需要进行详细的测试,确保没有错误的地方。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9cqM7G8G-1636430548056)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d1e3e6db6?imageslim)]
从上面的截图来看,自动适配的效果很不错,关于自动适配的原理,这里有一篇文章对此进行了详细的说明,文章地址在最后。
Android Q 深色模式(Dark Mode)源码解析
自定义适配
自定义适配的关键在于,避免一切硬编码的颜色值,建立 light 、night 两份 colors,通过定义相同的名字,在不同模式下显示不同的颜色。
1. 确保当前 App 使用的主题继承自 AppCompat 或 MaterialComponents,并将之前默认的 Light 主题修改为 DayNight
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QoE07Bou-1636430548057)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d1e835532?imageView2/0/w/1280/h/960/ignore-error/1)]
2.为 Dark Mode 定义 colors
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8ojFYGxK-1636430548058)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d4724882a?imageView2/0/w/1280/h/960/ignore-error/1)]
新建完成之后我们的 values 下会有两份 colors 文件,工程结构如下图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pf7cLfBG-1636430548059)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d49589859?imageView2/0/w/1280/h/960/ignore-error/1)]
3. 根据需求对不同模式下相同名字的颜色值做适配
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEcZqQ8o-1636430548060)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d4baebac7?imageView2/0/w/1280/h/960/ignore-error/1)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4igndhxW-1636430548061)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d473806be?imageView2/0/w/1280/h/960/ignore-error/1)]
这里推荐使用颜色本身的场景意义来命名,例如上图中的 colorBackground 表示背景颜色,colorOnError 表示在错误状态上,文字的显示颜色,在控件需要颜色的地方,直接通过 @color/colorXXX 来使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-frcdqkcB-1636430548062)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d4cdce1f8?imageView2/0/w/1280/h/960/ignore-error/1)]
自定义适配完全可以达到任何我们想要的效果,相比自动适配,这里我对状态栏、错误颜色以及强调色进行了微调。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bKq2anu5-1636430548063)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d5c17d19b?imageslim)]
使用 Material Design Components 进行适配
Material Design Components 不仅仅包含了各式各样的组件,还完善了 Material Design 的规范,相比组件来说更重要的是 MD 设计规范。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bya0aI3p-1636430548064)(https://user-gold-cdn.xitu.io/2020/3/3/1709ff5d6847d352?imageView2/0/w/1280/h/960/ignore-error/1)]
上图为 Material Design 的官网,在设计一览中,详细制定了各种规范,例如颜色系统该如何设计、阴影的原理和规范、字体的规范、图标该如何选择、交互效果该怎样设计等等。
我个人来说是非常喜欢 Material Design ,之后会计划在这个公众号上面为大家详细的介绍一下Material Design 到底是怎样的,相信很多人都知道 Material Design 但真正读过它的文档,以及认真了解过其设计原理的人,应该寥寥无几。
号上面为大家详细的介绍一下Material Design 到底是怎样的,相信很多人都知道 Material Design 但真正读过它的文档,以及认真了解过其设计原理的人,应该寥寥无几。
Android App Dark Theme(暗黑模式)适配指南,android实战mysql相关推荐
- Android App Dark Theme(暗黑模式)适配指南
在 2019 年的 Google I/O 和 Apple WWDC 上,新露面的 Android 10 和 iOS 13 都宣布将支持 Dark Theme 也就是我们常说的暗黑模式,并提供相关 AP ...
- Android 暗黑模式适配
Android 暗黑模式适配 不爱废话直接上菜. 第一种适配方式: 1.1 直接修改APP主题,values/styles.xml 如下: <style name="AppTheme& ...
- 【Web技术】935- 深色模式适配指南
???? 这是第 65 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧- 本文首发于政采云前端团队博客:深色模式适配指南 https://www.zoo.team/art ...
- 为什么 APP 纷纷开发“暗黑模式”?优酷最佳实践总结
简介: < 优酷 APP 全量支持"暗黑模式" 设计与技术完整总结>正式发布-- 一.缘起 随着iOS 13和Android 10的正式发布,一个名词"暗 ...
- iOS 暗黑模式适配(项目实战篇)
通过上面两篇文章,我们知道了暗黑模式怎么去适配,那么如何结合到真实的项目场景中去呢? 适配目标 在项目适配之前,先来梳理一下需要适配的东西,以及可能预见的问题. 一.下图是我们单个App的控件适配目标 ...
- android物联网开发技术架构,Android 相关七种 CPU 架构适配,android七种
Android 相关七种 CPU 架构适配,android七种 转载请注明出处:http://blog.csdn.net/kester_/article/details/71055901 NDK 开发 ...
- Android 适配Dark Theme(暗黑模式),Android高级工程师必备知识
Android 10 提供 Force Dark 功能.此功能可让开发者快速实现深色主题背景,只需要在 style.xml 中的应用主题中添加这一行代码android:forceDarkAllowed ...
- 百度APP iOS暗黑模式适配的完美解决方案
原创:liushaohua 百度APP技术团队 一 背景 在2019WWDC的开场演讲中,苹果公布了即将推出的iOS13 DarkMode的新特性.此新特性不仅可以在夜晚保护视力,而且对于使用OLED ...
- Android暗黑模式适配
前言 最近这两年,用户关于支持暗黑模式的呼声越来越高.而友商也基本都上了暗黑模式,于是老板也要求我们年前得上,可是工作量太大了,200多个页面,一个人整,实在是没法年前发,就拖到了年后上. 成果 1. ...
最新文章
- 从3D人脸到自动驾驶,CVPR2020十个顶级开源数据集
- oracle的结构是什么,Oracle的软件结构是什么呢?
- [一道搜狗输入法的面试题]C++转换构造函数和类型转换函数
- 对 makefile 中 $(MAKE) 的学习体会
- intellij出现dependency ‘xxx‘not found
- 办公技巧:Excel下拉菜单小技巧,赶紧学一下!
- 结构与算法(04):排序规则与查找算法
- html选择按钮select,Html选择使用select来改变一个按钮的链接使用Javascript
- Spring Boot系列教程四:配置文件详解properties
- 如何默认选择一个单选按钮? [重复]
- tensorflow分类的loss函数_Tensorflow Keras的loss函数总结
- 计算机基础ppt_「考前秘笈」2020年3月份计算机二级MS-office考试重点
- Cisco Packet Tracer 实验
- Java开发就业前景,2017java开发就业前景分析
- led灯光衰怎么解决_led灯光衰一般多少为正常?
- Better than better,白山EC2.0发布
- burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc
- 自动化运维之k8s——Helm、普罗米修斯、EFK日志管理、k8s高可用集群(未完待续)
- Zend Studio 10.6.0正式版注册破解
- 自动控制原理7.7---离散系统的数字校正