安卓 - 新的BitmapDrawable已过时; 替代方案Bitmap.createBitmap必须具有w / h> 0

9
我使用了一个PopupWindow。我将BackgroundDrawable设置为一个空的BitmapDrawable。
当我使用以下代码时,它会给出一个弃用警告:
myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

所以我把它改成了:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(0, 0, Bitmap.Config.ARGB_8888)
));

这让我出现了一个错误,即位图的宽度和高度必须大于0。
目前我使用的是:
myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)
));

它可以工作。但是使用一个1x1像素的Bitmap似乎有点不对,因为我想要完全空白的一个。是否有另一种方法来实际使用一个空的BitmapDrawable,而不是一个1x1像素的呢?


@Manu加上“提前感谢回复”是否违反stackoverflow的规定?顺便说一句,如果这是你给我投反对票的原因,那么有点幼稚了。你也可以说点什么。 - Kevin Cruijssen
2
这并不违反规则,但它不应该出现在帖子中(来源)。我刚刚给你点了赞,是另一个用户给你点了踩。 - Manuel Allenspach
1
@Manu 哦,好的,抱歉我误指责你给我点踩,而你并没有.. 谢谢你提供的资源帖,从现在开始我会不再写“先感谢回复”。 - Kevin Cruijssen
1个回答

24

好的,不是

myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

或者

myPopupWindow.setBackgroundDrawable(new BitmapDrawable(
    getApplicationContext().getResources(),
    Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)
));

我只是使用了一个背景颜色(new ColorDrawable(android.graphics.Color color)),我想把它设置到PopupWindow上。所以例如,我的一些PopupWindows只有几个没有间距的图像,因此我为它们使用了透明背景:

myPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

另外一个我想用白色背景,所以我使用了:

myPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE));

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