我想以编程方式删除背景drawable(@ 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>
答案 0 :(得分:278)
试试这个
RelativeLayout relative = (RelativeLayout) findViewById(R.id.widget29);
relative.setBackgroundResource(0);
中的setBackground函数
答案 1 :(得分:64)
setBackgroundResource(0)
是最佳选择。来自documentation:
将背景设置为给定资源。资源应该引用a 可绘制对象或 0以删除背景。
它可以在任何地方使用,因为它是自API 1以来的。
很久以后,在API 16中添加了 setBackground
,因此如果minSdkVersion
低于16,则无效。
答案 2 :(得分:47)
这有助于我删除背景颜色,希望它可以帮助某人。
setBackgroundColor(Color.TRANSPARENT)
答案 3 :(得分:4)
试用此代码:
这个也有效:
imgView.setImageResource(android.R.color.transparent);
但要小心这个不起作用:
imgView.setImageResource(0);
答案 4 :(得分:3)
我在android 4 +中试试这个:
view.setBackgroundDrawable(0);
答案 5 :(得分:1)
首先,你必须写
android:visibility="invisible" <!--or set VISIBLE-->
然后使用它来显示它
myimage.setVisibility(SHOW);//HIDE
答案 6 :(得分:0)
此方法的最佳表现:
imageview.setBackgroundResource(R.drawable.location_light_green);
使用此功能。
答案 7 :(得分:0)
使用setBackgroundColor(Color.TRANSPARENT)
将背景设置为透明,或使用setBackgroundColor(0)
。这里Color.TRANSPARENT
是颜色类的默认属性。它会正常工作。
答案 8 :(得分:0)
我有一个案例场景,我尝试了上面的所有答案,但总是在旧图像之上创建新图像。对我有用的解决方案是:
imageView.setImageResource(R.drawable.image);
答案 9 :(得分:0)
除了优秀的答案之外,如果你想通过xml实现这个目的,那么你可以添加:
android:background="@android:color/transparent
到你的观点。
答案 10 :(得分:0)
这项工作对我来说:
yourview.setBackground(null);