Android — 深色主题适配

前言

Google 在 Android 10 中加入了深色主题背景,妈妈再也不用担心我晚上玩手机变成瞎子了:

  • 减少耗电量(个人感觉这个然并卵,除非你的手机很牛逼)


  • 对强光比较敏感的用户提高了可视性,不再需要凑在眼前把手机屏幕调到最暗!!!
    睡前玩一玩
  • 在伸手不见五指的地方不怕被闪瞎眼了


    闪瞎纯金眼

撸码

一、创建目录

当你开启深色模式时,Android 会自己在资源目录下查找深色模式所需的资源,所以你需要创建文件夹(xxxx-night)存放深色模式资源。不要问我为什么创建!!!

  1. 创建 values-night 根据自己的需求将 valuesxml 文件 copyvalues-night 中。
  2. 看需求创建 drawable-nightdrawable-night-xxhdpi

二、创建资源文件

在开发过程中有两个常用的 colors.xmlstyles.xml。如果你不知道这两个玩意是什么东西我建议你点击右上角的小叉。

无语

  1. values-night 下创建 colors.xml、styles.xml,至于其他的你看完我说的这两个就会了。
  2. values/colors.xml 将内容copy到 values-night/colors.xml 然后让你家设计师给你深色模式下的设计图然后你就可以慢慢的修改颜色了
    image


    表达不清楚,直接上图!!!
    color

    如果你还是看不懂的话... 真的打扰了呢,,,
  3. values/styles.xml 同上,不多bb直接上图。
    style

三、Shape适配深色模式

适配 Shape 深色模式是非常简单的,在 drawable 中正常创建 shape 文件就可以,你只需要注意 shape 所需颜色是否在 values/colors.xmlvalues-night/colors.xml 中存在。
效果:

shape

四、自定义控件适配深色

为了避免重复的 shape 创建,我都会写自定义一个控件来动态设置 shape 值,这个不多说,懂的人自然懂,不懂得就去 Google 一下。
这里演示自定义Button。
values/attrs.xml 中创建自定义属性,比如我 Button 用到的就是圆角、边框颜色、边框宽度、当 Buttonenabledfalse 时候的颜色,这里的步骤和正常 自定义View 一样,直接下一步。
效果:

自定义控件

五、最终效果

效果

你可能感兴趣的:(Android — 深色主题适配)