当前位置: 代码迷 >> 综合 >> Android - new BitmapDrawable deprecated 创建一个空白的drawable
  详细解决方案

Android - new BitmapDrawable deprecated 创建一个空白的drawable

热度:58   发布时间:2024-01-21 14:58:12.0

创建一个空白的drawable

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


I've used a PopupWindow. With this PopupWindow I set the BackgroundDrawable to an empty BitmapDrawable.

When I use the following code it gives a deprecated warning:

myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

So I changed it to:

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

This gave me an error that a Bitmap must have a width and height bigger than 0.

Right now I use:

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

And it works. But it just seems a bit wrong to use a 1x1 pixel Bitmap instead of a completely empty one like I want to. Is there another way to actually use an empty BitmapDrawable, instead of one that is 1 by 1 pixels?




2 down vote accepted

Ok, instead of

myPopupWindow.setBackgroundDrawable(new BitmapDrawable());

OR

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

I just use a background-color that I want to set to the PopupWindow. So for example, one of my PopupWindows just had a few Images without margins in between them, so I just used a Transparent background for it:

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

And for another one I wanted to use a white background anyway, so I've used:

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


 

  相关解决方案