【问题标题】:What is the default color of ?attr/colorControlHighlight in android?android 中 ?attr/colorControlHighlight 的默认颜色是什么?
【发布时间】:2015-08-27 10:22:50
【问题描述】:

我需要知道 ?attr/colorControlHighlight 在 android 中的默认颜色,因为我需要在我的可绘制棒棒糖设备中为我的按钮按下状态背景应用相同的颜色。 ?attr/colorControlHighlight 是 lollipop 的属性之一,不能在 pre lollipop 上使用,否则会触发错误。

【问题讨论】:

  • ctrl + 点击它会带你到它的值
  • @NarendraKothamire 非常感谢!!!!!!

标签: android colors


【解决方案1】:

?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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2021-12-03
    • 2011-06-07
    • 2011-06-14
    • 2023-03-24
    相关资源
    最近更新 更多