这是参考以下链接中提出的问题
Android ImageButton with a selected state?
我们如何将它用作选择器?如果我们有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"/>
并将此drawable用作图像按钮的背景:
。 。 。
<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文件本身处理这个问题,而不是代码处理它。
答案 0 :(得分: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"/>
仍然......效果很好,令我满意。