在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>
尝试这个
RelativeLayout relative = (RelativeLayout) findViewById(R.id.widget29); relative.setBackgroundResource(0);
检查RelativeLayout文档中的setBackground函数
setBackgroundResource(0)
是最好的select。 从文档 :
将背景设置为给定的资源。 资源应该引用一个可绘制的对象或0来删除背景 。
它在任何地方都可以工作,因为它是从API 1起的。
setBackground
稍后在API 16中添加,因此,如果minSdkVersion
低于16,则不起作用。
这帮助我删除背景颜色,希望它可以帮助别人。 setBackgroundColor(Color.TRANSPARENT)
试试这个代码:
imgView.setImageResource(android.R.color.transparent);
也是这个作品:
imgView.setImageResource(0);
但要小心这一个不工作:
imgView.setImageResource(null);
首先,你必须写
android:visibility="invisible" <!--or set VISIBLE-->
然后用这个来显示它
myimage.setVisibility(SHOW);//HIDE
我尝试在Android 4 +这个:
view.setBackgroundDrawable(0);
此方法的最佳性能:
imageview.setBackgroundResource(R.drawable.location_light_green);
用这个。
使用setBackgroundColor(Color.TRANSPARENT)
将背景设置为透明,或使用setBackgroundColor(0)
。 这里Color.TRANSPARENT
是颜色类的默认属性。 它会正常工作。
我有一个案例情景,我尝试了上面的所有答案,但是总是在旧的上面创build新的图像。 为我工作的解决scheme是:
imageView.setImageResource(R.drawable.image);
除了优秀的答案,如果你想通过XML实现这个,那么你可以添加:
android:background="@android:color/transparent
以你的看法。
这为我工作:
yourview.setBackground(null);