在Android Studio中寻找硬编码和参考颜色之间差异的解释

在Android Studio中寻找硬编码和参考颜色之间差异的解释,android,android-studio,android-layout,Android,Android Studio,Android Layout,我正在和安卓工作室玩游戏。 我正试图改变背景颜色。我发现了如何改变它,但让我困惑的是,如果我替换colorAccent属性的定义(即实际的十六进制代码),我看不到相同的颜色。 这是原始代码,它使用@color/colorAccent,最终是类R.color中定义的十六进制代码: 这是我在替换colorAccent引用的十六进制代码时得到的结果: 如你所见,我得到的是灰色而不是红色。为什么会这样? 谢谢 [Android Studio 3.2]它不是红色,因为这取决于您的选择。 如果您硬编码X

我正在和安卓工作室玩游戏。 我正试图改变背景颜色。我发现了如何改变它,但让我困惑的是,如果我替换colorAccent属性的定义(即实际的十六进制代码),我看不到相同的颜色。 这是原始代码,它使用
@color/colorAccent
,最终是类
R.color
中定义的十六进制代码:

这是我在替换colorAccent引用的十六进制代码时得到的结果:

如你所见,我得到的是灰色而不是红色。为什么会这样? 谢谢
[Android Studio 3.2]

它不是红色,因为这取决于您的选择。 如果您硬编码XML,则可以更改其颜色。 单击代码左侧的侧边颜色:

然后选择您的颜色:

但是如果你像android:background=“@color/colorPrimary”
您应该在颜色XML中更改它,因为它不是红色,这取决于您的选择。 如果您硬编码XML,则可以更改其颜色。 单击代码左侧的侧边颜色:

然后选择您的颜色:

但是如果你像android:background=“@color/colorPrimary”
您应该在color XML中更改它,
R.java
中的
colorAccent
的十六进制值不是指颜色,而是指在
colors.XML
中为该XML属性自动生成的唯一id。如您所见,变量的十六进制值都是有序的,并且每次增加1


colorAccent
表示的颜色的实际十六进制代码是在
colors.xml
中定义的,直接在
android:background
属性中替换它将按照您的预期工作。

R.java中
colorAccent
的十六进制值不是指颜色,而是在
colors.XML
中为该XML属性自动生成的唯一id。如您所见,变量的十六进制值都是有序的,并且每次增加1


colorAccent
表示的颜色的实际十六进制代码是在
colors.xml
中定义的,直接在
android:background
属性中替换它将按照您的预期工作。

非常感谢。非常感谢。非常感谢。非常感谢。非常感谢。