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

如何通过java代码在android中更改颜色值,java,android,android-studio,colors,android-styles,Java,Android,Android Studio,Colors,Android Styles,我想更改中定义的颜色变量的十六进制颜色值和colorAccent颜色 MainActivity.java代码生成的colors.xml文件 我应该在方法、开关或if/else中的java文件中编写什么代码 要改变它吗 您应该使用主题和样式来更改颜色值。 见: 基本上,您应该在styles.xml中声明颜色: <style name="GreenText" parent="TextAppearance.AppCompat"> <item name="android:tex

我想更改中定义的颜色变量的十六进制颜色值和colorAccent颜色 MainActivity.java代码生成的colors.xml文件

我应该在方法、开关或if/else中的java文件中编写什么代码 要改变它吗


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

基本上,您应该在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期间更改主题-如果您想在运行期间更改主题,则必须通过调用recreate重新创建活动。您应该使用主题和样式来更改颜色值。 见:

基本上,您应该在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期间更改主题-如果您想在之后更改主题,则必须在运行时通过调用recreate重新创建活动。不幸的是,资源目录中的所有颜色值和其他资源都硬编码为静态最终整数。这意味着无法在运行时更改值。但是,您可以使用前面建议的解决方案之一,或者查看此优秀的解决方案


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


这些资源是不可变的,因此您不能更改它们的值。为什么你需要更改它们?如果需要,请使用不同的颜色键。您不能更改颜色值您可以创建不同的主题配置,并以编程方式在它们之间切换。@Aousafrashid因此资源是不可变的,那么我将使用所需的值定义不同的颜色变量,但是colorAccent呢?如何通过java进行更改code@nazmul如何创建不同的主题配置?请写一个答案或向我推荐一个资源是不可变的,所以你不能改变它们的值。为什么你需要更改它们?如果需要,请使用不同的颜色键。您不能更改颜色值您可以创建不同的主题配置,并以编程方式在它们之间切换。@Aousafrashid因此资源是不可变的,那么我将使用所需的值定义不同的颜色变量,但是colorAccent呢?如何通过java进行更改code@nazmul如何创建不同的主题配置?请写一个答案或给我一个答案。那颜色呢?如何通过编程更改它@Black mamba发布时,所有颜色值都是硬编码的。因此,处理您想要做的事情的一种方法是准备多个不同的主题并切换它们?如何通过编程更改它@Black mamba发布时,所有颜色值都是硬编码的。因此,处理您想要做的事情的方法是准备多个不同的主题并切换它们。