第一章:为啥要“多此一举”搞个资源文件?
很多新手兄弟可能会想:“不就是个颜色吗?我在布局里直接写 android:textColor="#FF5722",或者在代码里 setTextColor(Color.parseColor("#FF5722")),三两下搞定,不香吗?”
兄弟,短期内是香,但项目一上线,需求一变,你就知道锅儿是铁打的了。来看看专业做法(定义资源文件)的降维打击优势:
- 一改全改,统一管理(核心优势!)
你的App主色调是活力橙#FF5722,用了不下100个地方。突然有一天,产品大佬说:“咱们品牌升级,这个橙不够高级,换成莫兰迪色系的#E67E22吧!”
如果你是用硬编码的,恭喜你,开启了“Find & Replace”地狱模式,还得提心吊胆怕漏改、改错。但如果你把所有颜色都定义在res/values/colors.xml文件里,你只需要修改那个地方的定义,所有引用它的地方自动全部生效!这效率,杠杠的。 - 主题切换与深色模式的基石
现在不支持深色模式的App简直不好意思跟人打招呼。深色模式的本质就是为同一套UI元素提供两套不同的资源(包括颜色)。如果你把颜色值写死了,实现深色模式?重写一遍所有布局和代码吧!但通过资源文件,你可以轻松地为浅色和深色模式分别提供res/values/colors.xml和res/values-night/colors.xml,系统会自动根据当前模式切换。 - 代码可读性飙升
比较一下:
android:background="#FF4081"-> 这是个啥?粉红色?玫红色?
android:background="@color/pink_500"-> 哦!这是Material Design里那个标准的Pink 500色!
显然后者一眼就能看出意图,代码像散文一样优美,便于团队协作和后期维护。 - 遵循最佳实践,告别“魔法数字”
把魔法数字(Magic Number)散落在代码中是编程大忌。颜色代码就是一种典型的魔法数字。将其抽取为有意义的命名常量,是每个专业开发者的基本素养。
第二章:手把手创建你的颜色“装备库”——colors.xml
理论说再多,不如上手干。我们来创建一个标准的颜色资源文件。
1. 文件在哪?
在项目的 app/src/main/res/values/ 目录下,你会找到一个默认的 colors.xml 文件。如果没有,右键 values 文件夹 -> New -> XML -> Values XML File,输入文件名 colors.xml。
2. 语法是啥样?
它的结构非常简单,就是一个 <resources> 根标签,里面包着无数个 <color> 标签。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 你的颜色定义从这里开始 -->
<color name="color_primary">#FF5722</color>
<color name="color_primary_dark">#D84315&

最低0.47元/天 解锁文章
5067

被折叠的 条评论
为什么被折叠?



