1. 程式人生 > >在XML drawable中引用自定義顏色

在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>

==