在Android中有一個ImageButton的View,跟Button按鈕的區別是可以在Imagebutton上加載一個圖片。
從ImageButton這個字面意思上來看,它是一個圖片按鈕,那麼我們就可以使用它做一個我們想要的圖片按鈕了,但是我們在實際使用的過程當中,就會發現該按鈕的使用並沒有想像中的那麼簡單,需要再增加一些代碼或再配置XML才能實現圖片按鈕按下的效果,個人感覺有點麻煩,不知道google爲什麼這麼做?
下面是個圖片按鈕正常狀態的效果:
下面是圖片按鈕按下的效果圖片:
我們來看一下如何實現上面的效果。
實現圖片按鈕按下的效果有兩種方式可以實現:一是增加代碼,二配置XML。
一、在Java中爲圖片按鈕增加觸摸監聽的函數來實現圖片切換,代碼如下:
二、通過給按鈕配置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>
或者你也可以將state_focused的整個屬性行刪除。
另外,該XML配置文件不一定要存放在layout的目錄下,您也可以存放在drawable的目錄下。
2) 在main.xml中設置圖片按鈕的屬性,裝上面的xml文件增加到圖片按鈕中,內容如下:
另外,需要特別注意的是:在ImageButton中,如果使用XML配置文件來設置圖片的效果的話,就不要再指定它的android:src=""屬性值了,否則圖片的按下效果就出不來了。
這兩種方法各有各的好處,在實際運用過種當種可以根據自己的需要進行選擇。
附上面實例的源代碼下載:http://download.csdn.net/detail/ztp800201/4106649
該源代碼分別使用了兩種的方法實現了圖片按鈕的效果。其中上面的圖片按鈕是用代碼實現的,下面的圖片是用XML實現的。