web-dev-qa-db-ja.com

プログラムでImagebuttonを変更しますか?

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

助けてください。

ありがとうございました。

54
newbie

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

  ((ImageButton) view).setImageResource(R.drawable.icon2);
109
Budius

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

 image.setBackgroundResource(R.drawable.ico);
14
MuraliGanesan

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

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

これがお役に立てば幸いです。

2
ziniestro

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

((ImageButton)ビュー).setImageDrawable(replacer);

1
GrIsHu

Kotlinの場合、これは私のために動作します

yourimagebuttonID.setImageResource(R.drawable.ic_check_black_24dp)
0
Jimale Abdi

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

val myImageButton = ImageButton(context).apply({
    background = null
    setImageDrawable(ContextCompat.getDrawable(context, 
                         R.drawable.ic_save_black_24px))
})
0
Hasan A Yousef