2011-11-15 254 views
5

我想在不使用OnTouchListener的情況下觸摸此按鈕時更改按鈕的綠色背景。我有這種情況:我把一些buton放在一個圖層中,然後把圖層放在另一個圖層中,最後一層放在另一個圖層上。當我觸摸按鈕的背景變化(即時使用OnTouchListener),但如果我將手指拖出按鈕,然後將其從屏幕上退出,該按鈕的背景保持圖像從它觸摸時的狀態(否則,如果我點擊按鈕和所述finnger關閉按鈕,它是k爲背景正在改變)更改按鈕背景

+0

如果你不使用XML顯示你的代碼,我會說清楚.. –

回答

16

1.準備3張圖片按鈕狀態,並把它放入resource/drawable文件夾。

2.創建res/drawable/文件夾一個新的XML文件,以任何名義,你想,在這種情況下,我們只給一個名稱爲my_button.xml。這個文件定義了哪個按鈕狀態屬於哪個圖像。

現在,您可以通過此Id參考此按鈕:@ drawable/my_button。

文件:RES /抽拉/ my_button.xml

使用這樣與my_button.xml按鈕圖像中drawable文件夾中創建的xml文件

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/button_pressed_yellow" 
     android:state_pressed="true" /> 
    <item android:drawable="@drawable/button_focused_orange" 
     android:state_focused="true" /> 
<item android:drawable="@drawable/button_normal_green" /> 
</selector> 

添加一個普通按鈕,並且背景圖像附加到上述「my_button」經由

android:background:@drawable/my_button 
+0

謝謝。可以ü請給我的代碼示例(我不使用XML創建我的貴族) – moctavianro

+0

我沒有讓你。 –

+0

@ user1021692:他的意思是,你應該使用這個XML文件在你的按鈕tag.please看到編輯這個答案 – Hiral

0

選擇器將是如下面

<?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/btn_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" android:drawable="@drawable/btn_focused" /> <!-- focused --> 
    <item android:drawable="@drawable/btn_default" /> <!-- default --> 
</selector> 
+2

請爲我提供一個不是xml的代碼示例 – moctavianro