在运行时更改颜色资源的十六进制值

时间:2011-06-29 05:11:06

标签: android eclipse

是否可以在运行时更改颜色资源的值? 更改颜色的原因是根据应用程序的状态全局更改UI的颜色方案。我有使用这些颜色资源的UI元素的自定义形状,如果我能够在运行时更改颜色的值,那么我可以根据应用程序所处的状态更改UI元素的颜色。更改一个颜色值更有效,而不是更改每个UI元素的颜色,因为在UI上的许多地方使用了相同的颜色。

以下是我的color.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="custom_color_1">#ff5500</color>  
   <color name="custom_color_2">#fbe18d</color> 
   <color name="custom_color_3">#38302d</color> 
   <color name="custom_color_4">#50b2fa</color>
</resources>

然后在我的drawables目录中,我有各种UI元素的自定义形状文件,例如圆形按钮,

<?xml version="1.0" encoding="UTF-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">     
    <item>         
        <shape  android:shape="oval">             
            <gradient
            android:startColor="@color/custom_color_1" 
            android:endColor="@color/custom_color_2" 
            android:angle="270"
            />         
        </shape>     
    </item> 

    <item 
    android:top="1dp" 
    android:left="1dp" 
    android:right="1dp" 
    android:bottom="1dp">         

        <shape android:shape="oval">             
            <gradient
            android:startColor="@color/custom_color_3" 
            android:endColor="@color/custom_color_4" 
            android:angle="270"
            />         
        </shape>     
    </item> 

</layer-list>

因此,通过能够在运行时更改颜色资源值,我可以在运行时更改这些UI元素。希望这很清楚。

由于

0 个答案:

没有答案