Changing image dynamically in an ImageButton

Brandon Romano picture Brandon Romano · Aug 3, 2012 · Viewed 19.5k times · Source
XML     
<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageButton1"
        android:src="@drawable/image1"
        android:onClick="buttonClick"
    />

JAVA
--------------------
public void buttonClick(View v)
{
    Button aButton = (Button)v;
    aButton.setBackgroundResource(R.drawable.image2);
}

Here's what I've tried so far with no luck...

I want to be able to click the button and change the image to image2, there's also going to be other images i'll change it to based off of other variables. I'm just really stuck.. I'll continue looking at other questions and if I find an answer I'll post it here.

Answer

CSmith picture CSmith · Aug 3, 2012

Your buttonClick() needs fixing:

public void buttonClick(View v) 
{
 ImageButton aButton = (ImageButton)v;
 aButton.setImageResource(R.drawable.image2); 
} 

the View is an ImageButton, not a Button. The src attribute is updated via setImageResource, not setBackgroundResource.