我正在尝试以编程方式更改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 :(得分:109)
您的代码正在尝试更改按钮的背景。不是它的形象。 这是两件不同的事情
((ImageButton) view).setImageResource(R.drawable.icon2);
答案 1 :(得分:14)
试试这个适合我,以编程方式更改背景图片
image.setBackgroundResource(R.drawable.ico);
答案 2 :(得分:2)
您好,您可以使用以下代码
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())));
}
希望这会对你有所帮助。
答案 3 :(得分:1)
试试这种方式:
((ImageButton)view)。setImageDrawable(replacer);
答案 4 :(得分:0)
使用Kotlin,你可以这样做:
val myImageButton = ImageButton(context).apply({
background = null
setImageDrawable(ContextCompat.getDrawable(context,
R.drawable.ic_save_black_24px))
})
答案 5 :(得分:0)
对于Kotlin,这对我有用
yourimagebuttonID.setImageResource(R.drawable.ic_check_black_24dp)
答案 6 :(得分:0)
在Kotlin中,您可以使用以下代码:
val myImageButton = findViewById<ImageButton>(R.id.myImageButton)
myImageButton.setOnClickListener {
(myImageButton as ImageButton).setImageResource(R.drawable.myIcon)
}
答案 7 :(得分:-4)
尝试((ImageButton) view).setImageDrawable(replacer);