是否可以在运行时更改颜色资源的值? 更改颜色的原因是根据应用程序的状态全局更改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元素。希望这很清楚。
由于