在运行时更改应用主题的值

时间:2015-03-10 18:20:44

标签: android runtime android-theme material-design

我的应用需要更改应用主题的某些属性(例如colorPrimaryDark,colorAccent)

<item name="colorPrimaryDark">@color/i_need_runtime</item>
<item name="colorPrimaryDark">@color/me_too</item>

但是这些更改必须在运行时完成,因为这些值来自webservice(json)。因为没有任何api可以在运行时更改主题的值,我认为唯一的方法是通过Java Reflection更改在xml中定义的资源值,但我不知道怎么做,因为在R中java有定义的id,而不是值本身。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在Android中,无法在运行时修改主题。但是,对于API 21或更高版本,您可以调用

getWindow().setStatusBarColor(int color) 

getWindow().setNavigationBarColor(int color) 

在您的Activity中以编程方式设置颜色。