在XML drawable中引用自定義顏色

==android

先看一下一個xml drawable文件,這是一個button的樣式。ide

<?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裏面的。那該怎麼辦呢?spa

先在values/refs.xml文件裏面定義顏色,以下:3d

<?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文件裏面引用顏色便可,以下:code

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

 

==xml

相關文章
相關標籤/搜索