Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过代码更改全局重音颜色_Java_Android_Android Layout - Fatal编程技术网

Java 如何通过代码更改全局重音颜色

Java 如何通过代码更改全局重音颜色,java,android,android-layout,Java,Android,Android Layout,我正在android studio中制作我的第一个应用程序。到目前为止进展顺利,但我遇到了一个绊脚石: 我完全不知道如何编辑已定义的颜色 以下是其中两项活动的一些屏幕截图: 在layout.xml代码中,我将所有内容涂成如下颜色: <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layoutReset" androi

我正在android studio中制作我的第一个应用程序。到目前为止进展顺利,但我遇到了一个绊脚石:

我完全不知道如何编辑已定义的颜色

以下是其中两项活动的一些屏幕截图:

在layout.xml代码中,我将所有内容涂成如下颜色:

<androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/layoutReset"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <androidx.appcompat.widget.AppCompatButton
                    android:id="@+id/resetNutsButton"
                    android:layout_width="300dp"
                    android:layout_height="35dp"
                    android:layout_gravity="center"
                    android:layout_margin="30dp"
                    android:background="@drawable/round_corners"
                    android:backgroundTint="@color/Accent1"           //Accent colour
                    android:fontFamily="@font/lemonmilkregular"
                    android:text="Reset nuts"
                    android:textAlignment="center"
                    android:textColor="@color/Back1"                  //grey
                    android:textSize="25sp"
                    android:visibility="visible"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />
            </androidx.constraintlayout.widget.ConstraintLayout>

项目中的所有内容都使用colors.xml文件进行了着色,正如您从第二张图片中看到的,我想添加一个选项,选择当前红色的所有地方使用的强调色

我已经研究了很多问题,我可以看到在运行时编辑任何资源文件都是不可能的,所以我想知道最好的方法是什么

正如我所说,这是我的第一个应用程序,所以我可能只是错过了一些简单的东西。
非常感谢您的任何输入,如果您需要更多详细信息,请告诉我。

没错,您无法在运行时编辑颜色或主题。 您可以尝试(在
styles.xml
)中执行以下操作:


@颜色/靛蓝原色
@颜色/靛蓝原色深
@颜色/靛蓝色
@彩色/蓝色原色
@颜色/蓝色PrimaryDark
@颜色/蓝色口音
@彩色/红色原色
@颜色/红色原色深色
@颜色/红色口音
然后在代码中:

getTheme().applyStyle(R.style.Blue,true)

此外,删除版面中明确设置颜色的任何位置,您只希望它使用主题的颜色:


android:backgroundTint=“@color/Accent1”

没错,您无法在运行时编辑颜色或主题。 您可以尝试(在
styles.xml
)中执行以下操作:


@颜色/靛蓝原色
@颜色/靛蓝原色深
@颜色/靛蓝色
@彩色/蓝色原色
@颜色/蓝色PrimaryDark
@颜色/蓝色口音
@彩色/红色原色
@颜色/红色原色深色
@颜色/红色口音
然后在代码中:

getTheme().applyStyle(R.style.Blue,true)

此外,删除版面中明确设置颜色的任何位置,您只希望它使用主题的颜色:


android:backgroundTint=“@color/Accent1”
主题是不可变的,所以你不能。

主题是不可变的,所以你不能

<!-- Colors -->
<style name="Indigo">
    <item name="colorPrimary">@color/indigoColorPrimary</item>
    <item name="colorPrimaryDark">@color/indigoColorPrimaryDark</item>
    <item name="colorAccent">@color/indigoColorAccent</item>
</style>
<style name="Blue">
    <item name="colorPrimary">@color/blueColorPrimary</item>
    <item name="colorPrimaryDark">@color/blueColorPrimaryDark</item>
    <item name="colorAccent">@color/blueColorAccent</item>
</style>
<style name="Red">
    <item name="colorPrimary">@color/redColorPrimary</item>
    <item name="colorPrimaryDark">@color/redColorPrimaryDark</item>
    <item name="colorAccent">@color/redColorAccent</item>
</style>