我知道那是一个很老的问题,但是根据关于使用 xml 进行 alpha 更改的问题,我看不到正确的答案。
为此,您需要创建已在问题中显示的选择器,它是:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/inactive_button_background" android:state_enabled="false"/>
<item android:drawable="@drawable/active_button_background" android:state_enabled="true"/>
<item android:drawable="@drawable/pressed_button_background" android:state_pressed="true"></item>
</selector>
因此,如果您只有正常状态的可绘制对象(假设它的 btn_background.png)并且您需要它处于按下状态的 50% alpha,那么您所要做的就是创建相应的名为 press_button_background.xml 的 xml-drawable(在可绘制文件夹中,没有 dpi! )。所以这应该如下所示:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/btn_background"
android:alpha=".5" />
这同样适用于禁用状态,我猜唯一的区别是这个状态的 alpha 级别可能是 30% 或任何设计师说/想要的)。所以较短的版本将如下所示(对于带有可绘制 ic_edit.png 的按钮):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="true"
android:state_pressed="true">
<bitmap
android:src="@drawable/ic_edit"
android:alpha=".5" />
</item>
<item
android:state_enabled="false">
<bitmap
android:src="@drawable/ic_edit"
android:alpha=".3" />
</item>
<item
android:drawable="@drawable/ic_edit" />
</selector>