Change Theme Color at Runtime in Android [duplicate]

∥☆過路亽.° 提交于 2019-12-06 02:52:13

问题


Theme colors can be changed if multiple themes added in app and can be switched at run time easily. Other way is to change the color of actiobar, textview etc one by one of all the object. This way is very long and take lots of code. Simple way i found is to change colors declare in colors.xml file but i could not find a way programmatically or third party library to do that. Is there a way to do this.

My Colors XML File:

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

I just want to change colorPrimary color at runtime, this will change color on all app activities. I found https://github.com/negusoft/GreenMatter, to change colors at runtime but its old and dont work with android studio.


回答1:


when you apply theme and want to change color than

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>

theme color can not be change at runtime of a particular theme.

Make custom style and change these styles when you want to change color in your application.



来源:https://stackoverflow.com/questions/34735500/change-theme-color-at-runtime-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!