在Android中运行时更改主题颜色

时间:2016-01-12 04:17:19

标签: java android android-theme

如果在应用程序中添加了多个主题,并且可以在运行时轻松切换,则可以更改主题颜色。其他方法是逐个改变actiobar,textview等的颜色。这种方式很长,需要很多代码。我找到的简单方法是在colors.xml文件中更改颜色声明但我找不到编程方式或第三方库来执行此操作。有没有办法做到这一点。

我的颜色XML文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#ea1e63</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>

我只想在运行时更改 colorPrimary 颜色,这将改变所有应用活动的颜色。我找到https://github.com/negusoft/GreenMatter,在运行时更改颜色,但它旧的并且不适用于android studio。

1 个答案:

答案 0 :(得分:1)

当你应用主题并想要改变颜色而不是

EX:

activity.setTheme(R.style.green);


<style name="green">
        <item name="main_background">@drawable/background_green</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="button_light">@color/button_light</item>
</style>

主题颜色无法在特定主题的运行时更改

如果要在应用程序中更改颜色,请创建自定义样式并更改这些样式。