【问题标题】:Override/replace /res/values/color.xml in android在android中覆盖/替换/res/values/color.xml
【发布时间】:2014-08-24 06:20:27
【问题描述】:

我正在我的 android 应用中实现主题更改。我已经声明了 3 种颜色并使用 style.xml、theme.xml、attr.xml、color.xml 实现了主题更改。

但现在我需要从 webservice 获取颜色值并在 color.xml 中动态更改颜色

我的 color.xml

<color name="footer_active_orange">#c04a27</color>
<color name="footer_normal_orange">#ee672f</color>

在此我将获得颜色代码,即 #c04a27 和 #ee672f 来自网络服务,我需要在 xml 文件中单独更改此颜色代码。对于每个属性,android 在构建项目时会在 R.java 中生成一个资源 id。所以我无法修改/覆盖/替换我的 color.xml。尽快给我一些解决方案。

【问题讨论】:

    标签: java android xml colors android-theme


    【解决方案1】:

    我认为,您不能从代码中更改任何资源 xml。 考虑使用SharedPreferences,它可能是您的解决方案。

    【讨论】:

    • 所以不能动态更改xml文件?
    • 资源 xmls 通常以预编译的半二进制形式存储在 .apk 文件中,因此您不能修改、覆盖或替换为一些纯文本 xml。简短的回答:资源 xmls 是硬编码的,你不能修改它们。最好的,你可以做的是获取所有视图,并修改颜色。例如 TextView tv=(TextView) findViewById(R.id.tv); tv.setBackgroundColor(0xffee672f);
    • 感谢@Kari5 我已经使用 SharedPreference 成功实现了这一点。
    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多