在XML drawable中引用自定義顏色
阿新 • • 發佈:2018-12-30
==
先看一下一個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>
==