如何以编程方式将颜色应用于应用主题?

时间:2019-05-27 12:40:34

标签: android colors themes

我对将颜色应用于我的应用程序存在一些问题。 我想实现从网络上获取一些json的功能,

{
   "colorPrimary": "#45a02c",
   "colorAccent": "#a02c2c",
   "backgroundColor": "#FFFFFF"
}

并将其存储在我创建的ThemeColor之类的对象中。将json解析为对象没问题,但是现在我想在ThemeColor类中创建一个方法,该方法会将对象的颜色应用于我的应用程序,以便我的工具栏将以此主色进行着色,或者我可以将其与?attr/colorPrimary

有可能吗? 而实现这一目标的好方法是什么?在此先感谢!

1 个答案:

答案 0 :(得分:0)

style.xml中定义您的自定义主题,并在您的活动中使用它

style.xml

<style name="CustomTheme" parent="Theme.AppCompat.NoActionBar">
     <!-- Customize your theme here. -->
     <item name="colorPrimary">@color/your_custom_color</item>
     <item name="colorPrimaryDark">@color/your_custom_color_2</item>
     <item name="android:navigationBarColor">@color/your_custom_colot_3</item>
</style>

并在活动中使用该主题

public void onCreate(Bundle savedInstanceState) {
    setTheme(android.R.style.CustomTheme); //here your custom theme
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}