书法字典:https://www.shufadict.com

在XML drawable中引用自定义颜色

==

先看一下一个xml drawable文件,这是一个button的样式。

复制代码
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#FB7C16" />
            <stroke
                android:width="1dp"
                android:color="#FB7C16" />
            <corners
                android:radius="3dp" />
        </shape>
    </item>
    <item>
        <shape>
            <solid
                android:color="#1FAC75"/>
            <stroke
                android:width="1.0dp"
                android:color="#1FAC75" />
            <corners
                android:radius="3dp" />
        </shape>
    </item>
</selector>
复制代码

可以看到这里好几处用到了颜色,但是都是直接指定颜色值,如果我想引用一个外部颜色,比如定义在values/refs里面的。那该怎么办呢?

先在values/refs.xml文件里面定义颜色,如下:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable name="whitecolor">#FFFFFF</drawable>
    <drawable name="blackcolor">#000000</drawable>
    <drawable name="graycolor">#aaaaaa</drawable>
    <drawable name="drawerdivider">#FFFFFF</drawable>
    <!--<drawable name="theme_color">#1FAC75</drawable>-->
    <drawable name="theme_color">#FF3300</drawable>
    <drawable name="search_page_color">#60D1A3</drawable>
    <drawable name="grid_background">#FFFDF1</drawable>
    <!--<color name="theme_color">#1FAC75</color>-->
    <color name="theme_color">#FF3300</color>
</resources>
复制代码

然后在drawable xml文件里面引用颜色即可,如下:

复制代码
    </item>
    <item>
        <shape>
            <solid
                android:color="@color/theme_color"/>
            <stroke
                android:width="1.0dp"
                android:color="@color/theme_color" />
            <corners
                android:radius="3dp" />
        </shape>
    </item>
</selector>
复制代码

 

==

posted on   翰墨小生  阅读(9549)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2010-08-05 判断点是否在三角形内
2010-08-05 C++中的explicit关键字

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
书法字典:https://www.shufadict.com
点击右上角即可分享
微信分享提示