我的应用需要更改应用主题的某些属性(例如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,而不是值本身。
有什么想法吗?
答案 0 :(得分:0)
在Android中,无法在运行时修改主题。但是,对于API 21或更高版本,您可以调用
getWindow().setStatusBarColor(int color)
getWindow().setNavigationBarColor(int color)
在您的Activity中以编程方式设置颜色。