我从服务器获取颜色代码,我必须将它们设置为我的主题。我知道我可以通过在每个元素上单独设置颜色来实现。有没有办法动态创建主题或以编程方式声明主题的颜色。 主要目的是像一组用户可以设置自己的主题。
private void setColors(COLORS color) {
int toolbarColor = 0;
int statusbarColor = 0;
switch (color) {
case GREEN:
setTheme(R.style.AppTheme_NoActionBar_Green);
toolbarColor = R.color.green;
statusbarColor = R.color.greenDark;
break;
case RED:
setTheme(R.style.AppTheme_NoActionBar_Red);
toolbarColor = R.color.red;
statusbarColor = R.color.redDark;
break;
case BLUE:
setTheme(R.style.AppTheme_NoActionBar_Blue);
toolbarColor = R.color.blue;
statusbarColor = R.color.blueDark;
break;
}
mToolbar.setBackgroundColor(ContextCompat.getColor(MainActivity.this, toolbarColor));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MainActivity.this, statusbarColor));
}
}
目前,我正在做这样的事情,但作为模块,在项目增加中,我发现这样做很困难或忙乱。所以我正在寻找其他类似的东西,比如以编程方式设置主题颜色。
先谢谢大家帮助我