2013-01-09 11 views
43

ImageButtonのイメージをプログラムで変更しようとしています。イメージボタンはプログラムによって変更されますか?

私はこのコードをコピーしようとしていますが、setBackgroundDrawableは既に推奨されていません。

public void giveClue(View view) { 
    Drawable replacer = getResources().getDrawable(R.drawable.icon2); 
    ((ImageButton) view).setEnabled(false); 
    ((ImageButton) view).setBackgroundDrawable(replacer); 
    gameAdapter.giveClue(game); 
} 

次のように私のボタンは、XMLを使用して作成されました:

<ImageButton 
     android:id="@+id/ImageButton2" 
     android:layout_width="24dp" 
     android:layout_height="22dp" 
     android:layout_alignTop="@+id/imageButton1" 
     android:layout_toLeftOf="@+id/ImageButton3" 
     android:src="@drawable/icon" 
     android:onClick="giveClue"/> 

助けてください。

ありがとうございます。

+0

この質問の重複http://stackoverflow.com/questions/6751875/android-imagebutton-change-programmatically –

答えて

91

あなたのコードは、ボタンの背景を変更しようとしています。そのイメージではありません。 これら二つの異なるもの

((ImageButton) view).setImageResource(R.drawable.icon2); 
-3

はただ、この方法を試してみ

0

((ImageButton) view).setImageDrawable(replacer);をお試しください:

((のImageButton)ビュー).setImageDrawable(代用)。

12

がHi次のコード

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) 
{ 
    ((ImageButton) view).setImageResource(getResources().getIdentifier("icon2", "drawable", getPackageName())); 
} 
else 
{ 
    ((ImageButton) view).setImageDrawable(getDrawable(getResources().getIdentifier("icon2", "drawable", getPackageName()))); 
} 

希望にこの意志を使用することができます

image.setBackgroundResource(R.drawable.ico); 
+0

[setImageResource](https://developer.android.com/reference/android/widget/)を使用してください。代わりにImageView.html#setImageResource(int))を使用してください。 – StupidFox

1

、プログラム的背景画像を変更して、私のためにこのその作業をしてみています助けます。

関連する問題