2012-06-07 33 views
5

問題:我想在按下按鈕後改變按鈕的背景顏色。android-change button點擊後的背景顏色

這是一個簡單的問題,但我花了很多時間搜索這個,我似乎無法找到解決方案。它們都引用下面顯示的相同的XML。

我的XML如下:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/black_button_pressed" android:state_focused="true" /> 
    <item android:drawable="@drawable/black_button_pressed" android:state_pressed="true" /> 
    <item android:drawable="@drawable/black_button_normal"/> 
</selector> 

所以,當一個人懸停在一個按鈕,它會顯示爲灰色。當一個人點擊一個按鈕時,點擊後該按鈕的背景應該變灰,但我似乎無法將其變爲灰色。按下後,它恢復到正常狀態。

你們有任何提示和/或指引來幫助我嗎?

+0

它被點擊後應該恢復到正常狀態。如果你想讓它永久保持點擊狀態,你必須在下面使用Russ的答案。但是,如果您希望用戶能夠使用相同的動畫再次單擊它,則必須將背景資源設置回該XML文件。 – Guardanis

回答

2

在android中,事件完成後,UI的狀態將不會持續。例如,您可以處理按鈕單擊事件並突出顯示該按鈕,但一旦啓動了Up事件,它就會返回到其正常狀態。所以,據我所知,唯一的選擇是通過設置不同的可繪製資源來改變按鈕的背景。

btn.setBackgroundResource(R.drawable.btn_selected_blue);

0

這工作(在你的onClick處理程序):

button.setBackgroundResource(R.drawable.button_selected); 

有可能是一個不過更好的方式。

+0

我已經試過它已經不能工作。 – Unknown