【发布时间】:2015-07-03 12:37:23
【问题描述】:
我在 colors.xml 中定义了颜色,如下所示
<resources>
<color name="primary">#5D4037</color>
<color name="primary_dark">#4E342E</color>
<color name="accent">#FF3D00</color>
</resources>
我还在styles.xml中定义了主题,如下所示
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
此外,在代码中的许多地方,我都使用这些颜色来设置文本等。
现在我想为用户提供更改颜色的选项。我读到我无法更改colors.xml 中指定的颜色。另外,即使我更改了theme,引用的颜色也无法更改。因此,指定更多主题(使用硬编码的颜色)可能是一种选择,但在这种情况下,动态获得颜色的元素会发生什么?此外,用户不能选择任何颜色,只能使用我在主题中指定的颜色。
我是否遗漏了一些明显的东西?如何做到这一点?
【问题讨论】:
-
我认为您不能以编程方式更改样式,您需要更改为每个元素,
-
制作一个微调器,声明这些字段(primary、primary_dark、accent)并在点击时调用颜色。
标签: android colors android-xml android-theme