2012-08-13 183 views
0

如何更改代碼中按鈕的狀態。自從我從服務器獲取圖像後,我無法使用xml文件。從代碼更改按鈕的狀態

使用:

Drawable d = new BitmapDrawable(getResources(),bitmap); 

我有提拉但我怎麼分配不同的狀態,然後將附加的按鈕對應的圖像?

+0

您的意思是由'國家':集中,按下,...? – iTurki 2012-08-13 19:45:13

+0

你是什麼意思的「國家」?選擇?重點?可見? – 0gravity 2012-08-13 19:45:18

+0

是正確聚焦,按下等。 – dejavu 2012-08-13 19:47:02

回答

1

在xml中,我們使用<selector>元素來做到這一點。在代碼中,我們使用StateListDrawable

StateListDrawable content = new StateListDrawable(); 
Drawable pressedDrawable = new BitmapDrawable(getResources(),bitmap); 
//Your other drawables (focused, .....) 

content.addState(new int[] { android.R.attr.state_pressed }, pressedDrawable); 
//Add the other drawables the same way 

Button button = (Button) view.findViewById(R.id.my_button); 
button.setBackground(content); 
+0

但setImageDrawable未定義爲按鈕,是嗎? – dejavu 2012-08-13 20:15:54

+1

我想它應該是button.setBackground(content); – dejavu 2012-08-13 20:32:30

+0

你說得對。我在我的代碼中使用了'ImageButton',並且將其改爲與您的代碼匹配,但我忘記更改它。編輯。 – iTurki 2012-08-13 22:20:19