?attr/colorControlHighlight 是对 attr xml 中定义的 colorControlHighlight 值的引用。
attrs.xml 是位于以下位置的文件:
android_sdk\platforms\android-22\data\res\values\attrs.xml
您可以在应用中使用的所有属性都位于此处。
如果我们检查那个文件,我们会发现
<attr name="colorControlHighlight" format="color" /> 字符串,
这意味着colorControlHighlight 本身就是对颜色的引用。
这里声明的所有属性都只是对另一个值的引用。
实际值在 themes.xml 文件中分配,而该文件又位于:
android-sdk\platforms\android-22\data\res\values\themes.xml
如果我们检查该文件,我们会发现有很多主题都在使用我们的colorControlHighlight 参考。因此,无论您是在应用程序中使用一个主题还是另一个主题,colorControlHighlight 的值对于每个主题都是不同的。
在我们的例子中,有 2 个主题:
<item name="colorControlHighlight">@color/legacy_button_pressed</item>
为主题
和
<item name="colorControlHighlight">@color/legacy_light_button_pressed</item> 用于 Theme.Light
这里我们看到了另一个引用而不是值。但现在他们引用颜色属性:@color/。因此我们需要移动到 color.xml 文件。
这些是
android-sdk\platforms\android-22\data\res\values\colors.xml
android-sdk\platforms\android-22\data\res\values\colors_holo.xml
android-sdk\platforms\android-22\data\res\values\colors_leanback.xml
android-sdk\platforms\android-22\data\res\values\colors_legacy.xml
android-sdk\platforms\android-22\data\res\values\colors_material.xml
简单的文件检查会显示我们正在寻找的实际值:
在 colors-legacy.xml 文件中:
<color name="legacy_button_pressed">#fffea50b</color>
和
<color name="legacy_light_button_pressed">@color/legacy_button_pressed</color>
这也指第一种颜色。
所以,我们搜索的颜色是 #fffea50b