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