以编程方式修改 Android 主题

Modify Android Theme Programmatically

类似的问题已经被问过很多次了;但是,没有给出解决我的情况的答案。我需要根据从 API 调用返回的颜色值动态更改应用程序的主题。然后我需要根据返回的值更改应用程序的主题颜色。因此,我无法将颜色保存在样式 XML 文件中。这能做到吗?

我有一个基地 activity,我的计划是从那里为所有活动设置应用主题。

不幸的是,我没有找到一个简单的方法来做到这一点。我创建了一个 ThemeColor class 来保存 API 返回的所有颜色。然后对于每个 activity 我必须遍历每个小部件并为其设置样式。

示例:

getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor(themeColor.getActionBarColor)));
this.getWindow().getDecorView().setBackgroundColor(Color.parseColor(themeColor.getBackgroundColor()));

等等

我也找不到解决此问题的简单方法。通过创建一个 ThemeColor class 来保存从 API 返回的所有颜色。接下来,对于每个 activity,我需要分别处理每个小部件并为其设置样式。