【问题标题】:Remove image resource of ImageButton [duplicate]删除 ImageButton 的图像资源 [重复]
【发布时间】:2012-08-03 20:03:08
【问题描述】:

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

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

【问题讨论】:

  • 可以创建一个 1x1 透明图像资源(即完全透明的 1 像素图像),然后将此资源分配给您的 ImageButton。我很惊讶 setImageResource(null) 没有工作......
  • 你试过 ImageButton.setVisibility(View.INVISIBLE) 吗??
  • 你试过setImageDrawable(null)还是setImageBitmap(null)?

标签: android drawable imagebutton


【解决方案1】:

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

【讨论】:

  • 不会报错吗?系统会将 Integer 视为指向图像资源的指针,并且该资源不存在,或者至少不是图像。你试过吗?
  • 这非常有效。谢谢。
  • @RandomSort 之所以有效,是因为setImageResource 接受任何类型的资源,而不仅仅是图像。
  • 这也适用于 ImageView。 @Peter V
【解决方案2】:
imageButton.setBackgroundResource(0);

文档说:

资源应该引用一个 Drawable 对象或 0 来移除背景

【讨论】:

    【解决方案3】:

    通常,人们在 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 没有发表他的评论作为答案......对我来说是正确的

    【讨论】:

    • 我要试试这个,但这不是正确的方法。从布局中删除按钮或隐藏它。将其设置为虚拟图像资源感觉不对,尽管它可能是最简单的解决方案
    【解决方案4】:

    我不确定它是否有效,但我认为您可以回收 ImageButton 的可绘制对象。

    尝试类似:

    ImageButton imbBtn = (ImageButton) findBiewById(R.id.imbBtn);
    
    imgBtn.getDrawable().recycle();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多