在不同状态下使用两个图像切换button

我需要使用两个图像而不是ON / OFF状态来制作切换button。

在closures状态下,我设置了一个背景图像,但OFF文本无法删除,而我使用背景图像。

而且我不能通过点击切换button来设置ON状态的另一个图像:(我是Android新手,希望你们帮我解决这个问题

做这个:

<ToggleButton android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/check" <!--check.xml--> android:layout_margin="10dp" android:textOn="" android:textOff="" android:focusable="false" android:focusableInTouchMode="false" android:layout_centerVertical="true"/> 

在drawable文件夹中创buildcheck.xml

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected, use grey --> <item android:drawable="@drawable/selected_image" android:state_checked="true" /> <!-- When not selected, use white--> <item android:drawable="@drawable/unselected_image" android:state_checked="false"/> </selector> 

AkashG的解决scheme不适合我。 当我将check.xml设置为背景时,它只是垂直方向的划痕。 要解决这个问题,你应该设置check.xml为“android:button”属性:

 <ToggleButton android:id="@+id/toggle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:button="@drawable/check" //check.xml android:background="@null"/> 

check.xml:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- When selected, use grey --> <item android:drawable="@drawable/selected_image" android:state_checked="true" /> <!-- When not selected, use white--> <item android:drawable="@drawable/unselected_image" android:state_checked="false"/> </selector> 

你可以尝试这样的事情。 在这里点击图像button我切换imageview。

 holder.imgitem.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { if(!onclick){ mSparseBooleanArray.put((Integer) view.getTag(), true); holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_delete_overlay_com); onclick=true;} else if(onclick) { mSparseBooleanArray.put((Integer) view.getTag(), false); holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_selection_com); onclick=false; } } });