在 Android 中以编程方式删除背景绘制

我想以编程方式删除背景可绘制的 @drawable/bg。 有办法吗?

目前,我的布局中有以下 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/widget29"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/bg">


</RelativeLayout>
153198 次浏览

首先,您必须使用 XML 布局编写:

android:visibility="invisible" <!--or set VISIBLE-->

然后使用 Java 来显示它:

myimage.setVisibility(SHOW); //HIDE

试试这个

RelativeLayout relative = (RelativeLayout) findViewById(R.id.widget29);
relative.setBackgroundResource(0);

检查 RelativeLayout 文档中的 setBack 函数

这个帮助我去掉了背景颜色,希望对某些人有所帮助。 setBackgroundColor(Color.TRANSPARENT)

我在 机器人4 + 中尝试这个代码:

view.setBackgroundDrawable(0);

这种方法的最佳性能:

imageview.setBackgroundResource(R.drawable.location_light_green);

用这个。

setBackgroundResource(0)是最好的选择。来自 文件:

将背景设置为给定的资源 可绘制对象或 0删除背景

它在任何地方都可以工作,因为它是从 API 1开始的。

setBackground是后来在 API 16中添加的,所以如果你的 minSdkVersion低于16它就不能工作。

使用 setBackgroundColor(Color.TRANSPARENT)将背景设置为透明,或者使用 setBackgroundColor(0)。这里 Color.TRANSPARENT是颜色类的默认属性。一切都会好起来的。

我有一个案例的情况下,我尝试了所有的答案从上面,但总是新的形象被创建在旧的上面。对我有效的解决办法是:

imageView.setImageResource(R.drawable.image);

试试这个代码:

imgView.setImageResource(android.R.color.transparent);

这个也可以:

imgView.setImageResource(0);

但要小心这个不起作用:

imgView.setImageResource(null);

除了优秀的答案之外,如果您想通过 xml 实现这一点,那么您可以添加:

android:background="@android:color/transparent

你的风景。

这对我有用:

yourview.setBackground(null);