代码之家  ›  专栏  ›  技术社区  ›  LonsomeHell

当状态为禁用Android时更改ImageButton Drawable

  •  1
  • LonsomeHell  · 技术社区  · 8 年前

    我想创建一个可绘制的资源,以便在禁用图像按钮时更改图像按钮中使用的图像。

    我已经创建了一个可提取资源

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item>
            <bitmap android:src="@drawable/enabled_image" />
        </item>
        <item android:state_enabled="false">
            <bitmap android:src="@drawable/disabled_image" />
        </item>
    </selector>
    

    然后我在 android:src="@drawable/resource" 。当我打电话时 ImageButton.setEnabled(false) 按钮不可单击,但样式不变。

    android:background 用于其他材料(半径颜色等)

    2 回复  |  直到 8 年前
        1
  •  3
  •   LonsomeHell    8 年前

    试试这个

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_enabled="false" android:drawable="@drawable/disabled_backgroungd"/>
        <item android:state_pressed="false"
            android:drawable="@drawable/normal_backgroungd" />
        <item android:state_pressed="true"
            android:drawable="@drawable/backgroungd_selected" />
        <item android:state_enabled="true" android:drawable="@drawable/normal_backgroungd"/> 
    </selector>
    

    编辑 : State List

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:constantSize=["true" | "false"]
        android:dither=["true" | "false"]
        android:variablePadding=["true" | "false"] >
        <item
            android:drawable="@[package:]drawable/drawable_resource"
            android:state_pressed=["true" | "false"]
            android:state_focused=["true" | "false"]
            android:state_hovered=["true" | "false"]
            android:state_selected=["true" | "false"]
            android:state_checkable=["true" | "false"]
            android:state_checked=["true" | "false"]
            android:state_enabled=["true" | "false"]
            android:state_activated=["true" | "false"]
            android:state_window_focused=["true" | "false"] />
    </selector>
    

    编辑 :

    drawable中项目状态的顺序会有所不同。

        2
  •  0
  •   Anindya Pal    8 年前
    if(!ImageButton.isEnabled())
    {
         //set the drawable         
    }