如何设置一个空的可绘制对象

37

我正在处理Facebook SDK中的错误,为了消除这些错误,我需要将可绘制对象设置为空,不是NULL,而是空或空格或其他东西。我如何以编程方式实现这个操作?

Drawable=...
2个回答

94

您可以使用透明的 ColorDrawable

Drawable transparentDrawable = new ColorDrawable(Color.TRANSPARENT);

这是一个表示透明颜色并且没有内在大小的Drawable


那么,如果您尝试获取内在宽度,它会返回什么? - Michael Nana
1
根据来源,我会说是-1。 - njzk2
谢谢,我用了你的代码,它起作用了。我想它返回了0或者其他什么值,不过没关系,它能正常工作就好。 - Michael Nana
最直接的解决方案。谢谢! - IgorGanapolsky

7

使用透明的ColorDrawable和函数setBounds(Rect),可以制作具有宽度和高度的空Drawable。

 int left=0,top=0,right=32,bottom=32;
 Drawable transparentDrawable = new ColorDrawable(Color.TRANSPARENT);
 transparentDrawable.setBounds(left,top,right,bottom);

如果您想要一个与另一个可绘制对象(比如d)具有相同尺寸的空白可绘制对象:
 Drawable d = getResources().getDrawable(R.drawable.my_drawable);
 Drawable transparentDrawable = new ColorDrawable(Color.TRANSPARENT);
 transparentDrawable.setBounds(new Rect(0, 0, d.getMinimumWidth(), d.getMinimumHeight()));

XML的等效物是什么?在https://developer.android.com/guide/topics/resources/drawable-resource上没有ColorDrawable。 - ccpizza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接