2012-11-22 57 views
0

可能重複:
i have two buttons:「btn1,btn2」,the btn2 will randomly change when i change backgound of btn1 alpha兩個按鈕使用相同的背景圖片

在我的應用程序,我有兩個按鈕(BTN1和BTN2)使用相同的背景圖片(PIC1)當我改變背景透明的btn1。btn2的背景偶爾會改變,而且隨機。這很奇怪,誰能幫我找到問題?謝謝。

這是在OnTouch改變背景的代碼。當改變一個按鈕的背景爲半透明時,另一個將會影響。

TextView tv = (TextView) v; 
int color = tv.getCurrentTextColor(); 
int r = (color) & 0xFF; 
int g = (color >> 8) & 0xFF; 
int b = (color >> 16) & 0xFF; 
int a = (color >> 24) & 0xFF; 
tv.setTextColor(Color.argb(50, r, g, b)); 

如何避免它們互相影響?

+0

爲什麼不使用選擇器來改變觸摸的背景 –

+0

你可以顯示你設置每個onTouchListener的代碼嗎? –

回答

0

您究竟如何確定透明度?

也許我unterstood問題錯了,但這裏有雲:

在Android的份額狀態相同的圖像資源進行優化的可繪製。這意味着,當您更改一個drawable的alpha時,它將更改共享相同狀態的所有drawable的alpha(指向相同的資源)。爲了避免這種行爲,你可以在drawable上調用.mutate()方法來將這個drawable狀態與其他狀態分開。所以如果正試圖做.getBackground()。setAlpha(),你應該做.getBackground()。mutate()。setAlpha(alpha)來代替。 (注意,每次調用mutate()並不會損害性能(很小的開銷),因爲一旦drawable變爲mutable,mutate()方法什麼也不做)