17

我有一个按钮选择器,可以在按下按钮时更改按钮图像。我还设置了禁用按钮时的图像。我尝试以编程方式禁用该按钮,但未显示禁用的按钮图像。我的 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) 来禁用按钮

4

2 回答 2

37

试试这个,我为你上传了一个示例项目以获得更多帮助检查项目

选择器.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

于 2013-08-29T17:46:07.793 回答
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 -->
于 2013-08-29T16:54:55.207 回答