2011-07-19 14 views
3

こんにちは私は画像のボタンlinearButtonを持っています。私は条件付きでコード内の背景を置きたいが、それは決して起こらない!Androidのimagebuttonはプログラムによって変更されますか?

Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic); 
linearButton.setBackgroundDrawable(replacer); 

これは効果がないようだ、「リロード」機能は、私は、彼らが視覚的に変更する前に呼び出す必要がありimagebuttonsためにあるのでしょうか?

+2

を動作するはずです願っています。この1

linearButton.setImageResource(R.drawable.replacementGraphic); 

を試してみてください。私たちがあなたを助けるためにいくつかのコードを表示してください。 – Gallal

+0

どうもありがとうございました。私はこの質問を削除するつもりでしたが、追加された回答も役に立ちます! – CQM

答えて

7

invalidate()方法は、任意のビューの再描画を強制する:

Drawable replacer = getResources().getDrawable(R.drawable.replacementGraphic); 
linearButton.setBackgroundDrawable(replacer); 
linearButton.invalidate(); 

参照here参照用。

+0

あなたがAndroidを強制的に再描画するように表示を無効にしたい –

3

「正しい」回答が更新されるはずです。

int replace = R.drawable.my_image; 
myButton.setBackgroundResource(replace); 
myButton.invalidate(); 

か、単に:

myButton.setBackgroundResource(R.drawable.my_image); 
myButton.invalidate(); 

は動作します

setBackgroundDrawable()

setBackground()がより良い答えがかもしれAPI 16

で追加されたAPI 16で廃止されましたAPIレベルから1-18

0

は、私はそれはあなたが動作するはずです何

関連する問題