如何通过 java 代码更改 android 中的颜色值

How to change a color value in android via java code

I want to change the hex color value of a color variable and colorAccent color defined in the colors.xml file by MainActivity.java code.

What code should I write in the java file inside a method or a switch or if/else statement to change it?

您应该使用主题和样式来更改颜色值。 参见:Styles and Themes

基本上,你应该在styles.xml中声明颜色:

<style name="GreenText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#00FF00</item>
</style>

<style name="RedText" parent="TextAppearance.AppCompat">
    <item name="android:textColor">#ff0000</item>
</style>

然后在 onCreate 中声明使用哪个主题(在 setContentView() 之前):

 switch (theme) {
     case 1:
         setTheme(R.style.Green);
         break;
     case 2:
         setTheme(R.style.Red);
         break;
 }

编辑: 您只能在 onCreate() 期间更改主题 - 如果您想在之后更改它,在运行时,您将必须通过调用 recreate()

重新创建您的 activity

不幸的是,资源目录中的所有颜色值(和其他资源)都被硬编码为静态最终整数。这意味着无法在运行时更改这些值。但是,您可以使用之前建议的解决方案之一或查看这个优秀的