正常狀態的效果:
按鈕按下的效果圖片:
一、在java中為圖片按鈕增加觸摸監聽的函數來實現圖片切換,代碼如下:
ImageButton btn = (ImageButton)findViewById(R.id.imageButton1); btn.setOnTouchListener(new View.OnTouchListener(){ public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN){ //重新設置按下時的背景圖片 ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn_pressed)); }else if(event.getAction() == MotionEvent.ACTION_UP){ //再修改為抬起時的正常圖片 ((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn)); } return false; } });
代碼比較簡單,就是當圖片按下時,修改按鈕的背景圖片,當抬起時再修改為正常的圖片顯示。
二、通過給按鈕配置XML文件來實現圖片按鈕的背景切換效果,方法如下:
1) 在Layout下增加一個image_btn_press.xml文件,內容如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false" android:drawable="@drawable/android_btn" /> <item android:state_focused="true" android:drawable="@drawable/android_btn" /> <item android:state_pressed="true" android:drawable="@drawable/android_btn_pressed" /> </selector>
在main.xml中設置圖片按鈕的屬性:
<ImageButton android:id="@+id/imageButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@layout/image_btn_press" />
在ImageButtonk中指定background的屬性值:@layout/image_btn_press,其中image_btn_press 就是上面為該圖片銨鈕創建的XML配置文件。同時,你也可以將image_btn_press.xml文件放到drawable的目錄 下,此時,就要將它的屬性值修改為:@drawable/image_btn_press即可,也就是說指定它的XML文件的正確路經就行了。
另外,需要特別注意的是:在ImageButton中,如果使用XML配置文件來設置圖片的效果的話,就不要再指定它的android:src=""屬性值了,否則圖片的按下效果就出不來了。
設置按鈕不可按狀態:ImageButton.Attributes.Add("onclick","return false");