如何动态设置来自服务器ANDROID的主题

时间:2017-08-14 16:46:56

标签: android colors themes

我从服务器获取颜色代码,我必须将它们设置为我的主题。我知道我可以通过在每个元素上单独设置颜色来实现。有没有办法动态创建主题或以编程方式声明主题的颜色。 主要目的是像一组用户可以设置自己的主题。

  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));
  }
}

目前,我正在做这样的事情,但作为模块,在项目增加中,我发现这样做很困难或忙乱。所以我正在寻找其他类似的东西,比如以编程方式设置主题颜色。

先谢谢大家帮助我

0 个答案:

没有答案
相关问题