我目前正在使用默认主题的Android应用程序。布局使用colors.xml文件中定义的颜色:
<resources>
<color name="colorPrimary">#FF0DB94E</color>
<color name="textColorPrimary">#FFFFFF</color>
<color name="accentColor">#FF1744</color>
<color name="windowBackgroundPrimary">#F2F2F2</color>
...
</resources>
我想动态更新这些值:应用程序从URL获取JSON文件,数据存储在数组中。这部分已经编码。 JSON文件就像那样简单:
{
"colorPrimary":"#00B0EB",
"textColorPrimary":"#FFFFFFFF",
"accentColor":"#FFFFFFFF",
"windowBackgroundPrimary":"#FFFFFFFF",
...
}
我的问题是我不知道如何修改这些颜色值。它们存储的R.java文件在编译后无法访问,并且使用循环修改布局中的所有颜色引用似乎不是最好的方法。
任何人都有任何好方法的线索吗?
目前我有几种选择,但我真的不知道如何实施它们:
感谢您的帮助
答案 0 :(得分:0)
在Activity类
中使用此方法getResources().getColor(int id)
ID:RESOURCEID
答案 1 :(得分:0)
在Activity中有一些与主题相关的方法,如activity.setTheme(R.style.MyTheme)等。但是所有这些方法都使用R.style标识符进行操作。
所以简而言之,你是对的。只有两个选项: