按下按钮的颜色,我怎样才能使用默认值是4.4还是之前?

时间:2014-01-19 02:19:12

标签: android

我的理解是4.4将按钮的一些高亮颜色更改为灰色或更中性而非蓝色。在我的应用程序中,我有一些自定义可绘制的按钮 - 只是一个带圆角的形状,然后是所有状态的选择器。到目前为止,在我的应用程序中,我刚刚在此选择器中对实际颜色进行了硬编码,这与4.0-4.3中的默认Holo主题相同。但是,通过最近的更改,我希望在4.4+设备上运行时,这些按钮的按下状态为默认(灰色)。这样他们就会匹配动作栏突出显示等。

到目前为止,我已尝试在我的选择器中使用属性'colorPressedHighlight',但这不起作用(我不完全理解属性/样式)。该应用程序不会编译,似乎你不能引用属性代替颜色。

有办法做到这一点吗?我现在想为每个API版本设置一个不同的选择器,只需对每个API中的值进行硬编码?从简短的看,我认为这是可能的,但看起来非常不优雅。这真的不应该像看起来那么难,对吗?

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:2)

  

res / values-v19

API级别19创建值文件夹,即对于android 4.4 及更高版本。

res/values-v19/colors.xml

为按钮选择颜色定义自定义颜色值

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color
        name="button_selection"
        >hex_color(Gray)</color>
</resources>

创建 API级别低于19的值文件夹,即下面的android 4.4

  

RES /值/ colors.xml

 <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color
            name="button_selection"
            >hex_color(blue)</color>
    </resources>

然后在自定义drawable中使用此值。