Reputation: 14950
I'm trying to change the image of the ImageButton programmatically.
I'm trying to copy this code, but the setBackgroundDrawable is already deprecated.
public void giveClue(View view) {
Drawable replacer = getResources().getDrawable(R.drawable.icon2);
((ImageButton) view).setEnabled(false);
((ImageButton) view).setBackgroundDrawable(replacer);
gameAdapter.giveClue(game);
}
My button was created using xml as follows:
<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"/>
Upvotes: 70
Views: 71713
Reputation: 81
In Kotlin you can use this code:
val myImageButton = findViewById<ImageButton>(R.id.myImageButton)
myImageButton.setOnClickListener {
(myImageButton as ImageButton).setImageResource(R.drawable.myIcon)
}
Upvotes: 2
Reputation: 2844
For kotlin this works for me
yourimagebuttonID.setImageResource(R.drawable.ic_check_black_24dp)
Upvotes: 0
Reputation: 24928
Using Kotlin, you can do this:
val myImageButton = ImageButton(context).apply({
background = null
setImageDrawable(ContextCompat.getDrawable(context,
R.drawable.ic_save_black_24px))
})
Upvotes: 0
Reputation: 696
Hi you can use the following code
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())));
}
Hope this will help you.
Upvotes: 4
Reputation: 39836
your code is trying to change the background of the button. not its image. Those are two different things
((ImageButton) view).setImageResource(R.drawable.icon2);
Upvotes: 158
Reputation: 3261
Try this its working for me,Change the background image programmatically,
image.setBackgroundResource(R.drawable.ico);
Upvotes: 20
Reputation: 23638
Just try out this way:
((ImageButton) view).setImageDrawable(replacer);
Upvotes: 1