为颜色添加透明度以模拟禁用状态

时间:2016-05-06 14:41:31

标签: android android-styles

我在style/v21

中为我的按钮设置了以下选择器

// button_color_state.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Disable background -->
<item android:state_enabled="false" android:color="#dfdfdf"/>

<!-- Enabled background -->
<item android:color="@color/buttonColor"/>
</selector>

现在而不是明确说明按钮被禁用时将其变为灰色。我可以不怎么说,只要让它成为@color/buttonColor

的褪色/透明的版本

还有谁知道禁用按钮的标准android透明度是什么?

我仍然不知道为什么在v21我们现在必须明确地给出禁用的颜色。在v21之前它运作得很好。

3 个答案:

答案 0 :(得分:4)

你可以更改alpha并在代码上禁用它,如下所示:

button.setAlpha(.5f);
button.setClickable(false);

这可能是对活动创建的检查。

答案 1 :(得分:0)

这样做的简单方法是在colors.xml中简单地将alpha值添加到颜色值本身。

例如,如果您的按钮颜色为红色:#ff0000,只需在其前面添加50%的alpha值:#80ff0000 (80十六进制对应于128十进制= 256的50%(ff hex)

现在您的颜色只是原始颜色的略微“褪色”版本。 alpha值只是一个百分比,00-99,因此您可以使用数字来获得适合您颜色的淡入淡出量。

答案 2 :(得分:0)

您可以使用alpha来更改对象的透明度

android:alpha =“0.0”,这是不可见的

android:alpha =“0.5”透视

android:alpha =“1.0”完全可见