9

我有一个透明的 ImageButton。单击时,按钮的 ImageResource 设置为我的 drawable-hdpi 文件夹中的可绘制对象(基本上,图像显示在透明 ImageButton 的顶部)。我正在使用该ImageButton.setImageResource()方法来做到这一点。我的问题是,我怎样才能删除图像资源,以便再次只有一个透明图像按钮。当然,我需要能够在 java 中做到这一点,而不是 XML。我尝试了以下失败的方法:ImageButton.setImageResource(null); 我也环顾四周,找不到答案......在此先感谢您的帮助。

编辑:谢谢大家的回答.. Péter Varga 的回答正是我所需要的,所以这就是我要做的。

4

4 回答 4

37

尝试设置imageButton.setImageResource(android.R.color.transparent)

于 2012-08-06T20:22:26.030 回答
15
imageButton.setBackgroundResource(0);

文档说:

资源应引用 Drawable 对象或 0 以移除背景

于 2013-05-29T16:43:54.863 回答
1

通常,人们在 drawable 文件夹中创建 null_image.xml 资源文件,并在需要清除背景时使用此资源:

null_image.xml 内容:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="#0000" />
    <size
        android:width="1dp"
        android:height="1dp" />
</shape>

当您需要清除背景时 - 只需致电:

ImageButton.setImageDrawable(R.drawable.null_image);

不知道为什么 CSimth 没有发表他的评论作为答案......对我来说是正确的

于 2012-08-06T20:24:12.490 回答
0

我不确定它是否有效,但我认为你可以回收ImageButton's drawable。

尝试类似:

ImageButton imbBtn = (ImageButton) findBiewById(R.id.imbBtn);

imgBtn.getDrawable().recycle();

我以前从未尝试过,如果它对你有用,请告诉我。

于 2012-08-06T20:31:40.997 回答