我想創建一個具有默認圖像的按鈕,但當它按下它切換到一個新的圖像。我使用this tutorial
以及this question
,但它不起作用。ImageButton狀態時按下不顯示
這是我info_button_selector.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="@drawable/ic_menu_info_details2" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_menu_info_details2" /> <!-- focused -->
<item android:drawable="@drawable/ic_menu_info_details" /> <!-- default -->
</selector>
這是我的ImageButton代碼:
<ImageButton
android:id="@+id/apModeInfoButton"
android:layout_width="0dip"
android:background="@null"
android:layout_height="match_parent"
android:layout_weight="1.15"
android:clickable="true"
android:src="@drawable/info_button_selector" />
按鈕停留在尋找像ic_menu_info_details
的整個時間的初始狀態。
我改變了我的info_button_selector.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="@drawable/ic_menu_info_details2" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_menu_info_details2" /> <!-- focused -->
<item android:drawable="@drawable/ic_menu_info_details2" /> <!-- default -->
</selector>
的ic_menu_info_details2
圖像顯示的整個時間,預計。這表明按鈕IS使用XML文件作爲其可繪製資源,但爲什麼按鈕在按下時不會更改其圖像?
編輯
使用下面喬斯的回答,圖像依然不改,現在在一個陌生的方式延伸。注意:除了第二個圖像縮放爲60%大小外,兩幅圖像都完全相同。這可能意味着它正在工作,但由於視圖被拉伸,我無法說明。
<ImageButton
android:id="@+id/apModeInfoButton"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1.15"
android:clickable="true"
android:background="@drawable/info_button_selector" />
我使用了這兩個版本的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="@drawable/ic_menu_info_details" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_menu_info_details" /> <!-- focused -->
<item android:drawable="@drawable/ic_menu_info_details" /> <!-- default -->
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/ic_menu_info_details2" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/ic_menu_info_details2" /> <!-- focused -->
<item android:drawable="@drawable/ic_menu_info_details2" /> <!-- default -->
</selector>
謝謝,我給了它一個鏡頭,但它並沒有解決問題。如果你有時間,我更新了我的問題。 – JuiCe
編輯我的回答添加更多描述 –