图像按钮以编程方式更改?

new*_*bie 54 android 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);
}
Run Code Online (Sandbox Code Playgroud)

我的按钮是使用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"/>
Run Code Online (Sandbox Code Playgroud)

请帮忙.

谢谢.

Bud*_*ius 113

您的代码正在尝试更改按钮的背景.不是它的形象.这是两件不同的事情

  ((ImageButton) view).setImageResource(R.drawable.icon2);
Run Code Online (Sandbox Code Playgroud)


Mur*_*san 16

试试这个为我工作,以编程方式更改背景图像,

 image.setBackgroundResource(R.drawable.ico);
Run Code Online (Sandbox Code Playgroud)

  • 您应该使用 [setImageResource](https://developer.android.com/reference/android/widget/ImageView.html#setImageResource(int)) 代替。 (2认同)