首页 > 解决方案 > 如何以编程方式将颜色应用于应用程序主题?

问题描述

我对将颜色应用于我的应用程序有一些问题。我想实现从网络上获取一些 json,如下所示:

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

并将其存储在我创建的 ThemeColor 之类的对象中。将 json 解析为对象是没有问题的,但现在我想在我的 ThemeColor 类中创建一个方法,它将对象的颜色应用到我的应用程序,以便我的工具栏将以这种原色着色,或者我可以使用它?attr/colorPrimary.

那可能吗?什么是实现这一目标的好方法?

标签: androidcolorsthemes

解决方案


在里面定义你的自定义主题style.xml并在你的活动中使用它

样式.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);
}

推荐阅读