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

时间:2018-10-28 13:49:59

标签: android android-studio android-layout

我正在玩Android Studio。 我正在尝试更改背景色。我已经找到了如何更改它的方法,但令我感到困惑的是,如果我替换colorAccent属性的定义(即实际的十六进制代码),我不会看到相同的颜色。 这是原始文件,使用的是@color/colorAccent,它最终是类R.color中定义的十六进制代码:

enter image description here

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

enter image description here

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

2 个答案:

答案 0 :(得分:1)

它不是红色阴影,因为取决于您的选择。 如果对它进行硬编码,则可以更改XML的颜色。 单击代码左侧的侧面颜色: enter image description here

然后选择您的颜色: enter image description here

但是,如果您将其设置为android:background="@color/colorPrimary" 您应该将其更改为彩色XML

答案 1 :(得分:1)

colorAccentR.java的十六进制值与颜色无关,而是为colors.xml中的XML属性自动生成的唯一ID。如您所见,变量的十六进制值都是有序的,每次都增加1。

colorAccent中定义了由colors.xml表示的颜色的实际十六进制代码,直接将其替换为android:background属性将可以按您期望的方式工作。