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



style/v21 中的按钮有以下选择器

//button_clor_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 的褪色/透明版本

还有人知道禁用按钮的标准安卓透明度是什么吗?

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

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

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

这可能在活动创建的检查中。

实现这一点的简单方法是简单地将alpha值添加到colors.xml.中的颜色值本身

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

现在你有了一种颜色,它只是你原来颜色的一个稍微"褪色"的版本。alpha值只是一个百分比,00-99,所以你可以使用这些数字来获得合适的渐变量。

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

android:alpha="0.0"这是不可见的

android:alpha="0.5"透视

android:alpha="1.0"完全可见

最新更新