我的理解是4.4将按钮的一些高亮颜色更改为灰色或更中性而非蓝色。在我的应用程序中,我有一些自定义可绘制的按钮 - 只是一个带圆角的形状,然后是所有状态的选择器。到目前为止,在我的应用程序中,我刚刚在此选择器中对实际颜色进行了硬编码,这与4.0-4.3中的默认Holo主题相同。但是,通过最近的更改,我希望在4.4+设备上运行时,这些按钮的按下状态为默认(灰色)。这样他们就会匹配动作栏突出显示等。
到目前为止,我已尝试在我的选择器中使用属性'colorPressedHighlight',但这不起作用(我不完全理解属性/样式)。该应用程序不会编译,似乎你不能引用属性代替颜色。
有办法做到这一点吗?我现在想为每个API版本设置一个不同的选择器,只需对每个API中的值进行硬编码?从简短的看,我认为这是可能的,但看起来非常不优雅。这真的不应该像看起来那么难,对吗?
任何帮助非常感谢。
答案 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中使用此值。