66

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"/>
4

8 に答える 8

149

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

  ((ImageButton) view).setImageResource(R.drawable.icon2);
于 2013-01-09T10:41:11.463 に答える
19

これを試してみて、プログラムで背景画像を変更してください。

 image.setBackgroundResource(R.drawable.ico);
于 2013-01-09T10:46:27.463 に答える
3

こんにちは、次のコードを使用できます

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())));
}

これがあなたを助けることを願っています。

于 2015-04-08T01:08:03.587 に答える
1

この方法を試してみてください:

((ImageButton) view).setImageDrawable(replacer);

于 2013-01-09T10:27:14.580 に答える
0

Kotlin を使用すると、次のことができます。

val myImageButton = ImageButton(context).apply({
    background = null
    setImageDrawable(ContextCompat.getDrawable(context, 
                         R.drawable.ic_save_black_24px))
})
于 2018-04-20T10:20:28.730 に答える
-4

試す((ImageButton) view).setImageDrawable(replacer);

于 2013-01-09T10:26:56.590 に答える