本文執行個體講述了Android編程簡單實現ImageView點擊時背景圖修改的方法。分享給大家供大家參考,具體如下:
在使用ImageView時,當被點擊時,希望背景圖修改一下,這樣顯示被點擊效果明顯一些。在這裡,一個很簡單的方法,最起碼是個很清晰的方法。在res/drawable檔案夾下建立一個xml檔案。比如my.xml,內容如下:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@*android:drawable/btn_search_dialog_voice_pressed" /> <item android:state_pressed="false" android:drawable="@*android:drawable/btn_search_dialog_voice_default" /></selector>
這裡面要注意一點,就是在上面的drawable是引用的系統的圖片資源,如果是使用自己的圖片資源,要使用如下格式
複製代碼 代碼如下:
android:drawable="@drawable/ic_desk_point_normal"
然後,在定義imageView的xml檔案裡面設定:
android:src="@drawable/youPicture"android:background="@drawable/my"
以上即可完成效果。
記得ImageView要加上加上clickable="true",不然它的selector 是不會有效果。
把下面的XML儲存成.xml檔案(比如list_item_bg.xml),運行時系統會根據ListView中清單項目的狀態來使用相應的背景圖片。
drawable/list_item_bg.xml
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 預設時的背景圖片 --> <item android:drawable="@drawable/pic1" /> <!-- 沒有焦點時的背景圖片 --> <item android:state_window_focused="false" android:drawable="@drawable/pic1" /> <!-- 非觸摸模式下獲得焦點並單擊時的背景圖片 --> <item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic2" /> <!-- 觸摸模式下單擊時的背景圖片 --> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3" /> <!--選中時的圖片背景 --> <item android:state_selected="true" android:drawable="@drawable/pic4" /> <!--獲得焦點時的圖片背景 --> <item android:state_focused="true" android:drawable="@drawable/pic5" /> </selector>
使用方法:
第一種是在listview中配置
複製代碼 代碼如下:
android:listSelector="@drawable/list_item_bg"
第二種是在listview的item中添加屬性
複製代碼 代碼如下:
android:background="@drawable/list_item_bg"
第三種是java代碼中使用:
Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg);listview.setSelector(drawable);
註:列表有時候為黑的情況,需要加上下面的代碼使其透明:
複製代碼 代碼如下:
android:cacheColorHint="@android:color/transparent"
希望本文所述對大家Android程式設計有所協助。