2013-08-29 50 views
10

我有一个按钮选择器,用于在按下按钮图像时更改按钮图像。我还设置了禁用按钮时的图像。我尝试以编程方式禁用按钮,但禁用的按钮图像未显示。我的button_selector是否正确?使用按钮选择器的禁用按钮

<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled --> 

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed --> 
<item android:drawable="@drawable/red_btn_bg_pressed" android:state_focused="true"/> <!-- focused --> 

<item android:drawable="@drawable/red_btn_bg"/> <!-- default --> 

我在我的代码使用mButton.setEnabled(false)来取消按钮

回答

24

试试这个,我上传的一个示例项目为您提供更多的帮助检查项目

selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

     <item android:drawable="@drawable/btn_disable" android:state_enabled="false"/> 
     <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> 
     <item android:drawable="@drawable/btn_normal"/> 

    </selector> 

和按钮,可以使用这个选择如下

<Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/button1" 
     android:layout_below="@+id/button1" 
     android:layout_marginTop="30dp" 
     android:background="@drawable/selector" 
     android:enabled="false" 
     android:text="Disable Button" /> 

示例代码链接 https://www.dropbox.com/s/lydkog10rkujbsa/ButtonSelector.rar

+0

工作就像一个魅力! “启用”帮助了我很多 –

3

试试这个。

<item android:drawable="@drawable/red_btn_bg_pressed" android:state_pressed="true"/> <!-- pressed --> 

<item android:drawable="@drawable/red_btn_bg_disabled" android:state_enabled="false"/> <!-- disabled --> 

<item android:drawable="@drawable/red_btn_bg"/> <!-- default -->