在ImageButton中动态更改图片

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

到目前为止,这是我尝试过但没有成功的...

我希望能够点击按钮并将图像更改为image2,还会基于其他变量将其更改为其他图片。我真的陷入了困境...我会继续查看其他问题,如果找到答案,我会在这里发布。

1个回答

19

你的 buttonClick() 方法需要修复:

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

该视图是ImageButton而不是Button。通过setImageResource而非setBackgroundResource更新src属性。


谢谢!我其实已经弄明白了,不过我的第二行代码写得有点乱。太棒了! - Brandon Romano
嗨,CSmith,我知道这已经是3年后的事情了,但当我这样做时,我的图像大小奇怪,并且被裁剪了。我应该怎么做才能解决这个问题?谢谢。 - Ruchir Baronia
@RuchirBaronia 在你的活动的 XML 中,对于你的 ImageButton:设置 android:scaleType="fitXY" 来填充 ImageButton 的图片。此外,你可以使用 android:padding="4dp" 来完全填充 ImageButton。希望能有所帮助。 - Jesús Hagiwara

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接