0

这是参考以下链接中提出的问题

具有选定状态的Android ImageButton?

我们将如何使用它作为选择器?如果我们有 4 个背景图片,例如:

select_all_up.png, select_all_down.png deselect_all_up.png, deselect_all_down.png

我已经用state_selected属性检查了它,但它似乎不起作用。另一种选择是使用复选框而不是图像按钮,但我仍在研究是否有替代方法。???

我只是 Android 的初学者,只是在探索事物的工作原理。希望在这个话题上有帮助。提前致谢。

这是我为它编写的选择器文件:

<item android:drawable="@drawable/select_all_down" android:state_pressed="true" android:state_selected="false"/>
<item android:drawable="@drawable/select_all_up" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/deselect_all_down" android:state_pressed="true" android:state_selected="true"/>
<item android:drawable="@drawable/deselect_all_up" android:state_pressed="false" android:state_selected="true"/>

并将此可绘制对象用作图像按钮的背景:

. . . .

    <ImageButton
        android:id="@+id/selectAllImageButton"
        android:layout_width="300dp"
        android:layout_height="35dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/buttonanim_select_all_button"
        android:contentDescription="@string/todo"/>

. . . .

我希望在 XML 文件本身中处理这个问题,而不是编写处理它的代码。

4

1 回答 1

0

我有办法解决它,利用 ToggleButton 概念。但仍然想知道为什么 ImageView 无法获取这些属性。

<ToggleButton
        android:id="@+id/selectAllImageButton"
        android:layout_width="300dp"
        android:layout_height="35dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:background="@drawable/buttonanim_select_all_button"
        android:contentDescription="@string/todo"
        android:textOn="@string/empty_text"
        android:textOff="@string/empty_text"/>

仍然......它运作良好,令我满意。

于 2013-10-29T10:06:22.523 回答