如何将PictureDrawable转换为Bitmap

4
如何将PictureDrawable对象转换为Bitmap对象? 我尝试了下面显示的代码,但它会返回null指针。
       //Convert PictureDrawable to Bitmap
            private Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable){
            Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth(),pictureDrawable.getIntrinsicHeight(), Config.ARGB_8888);
            Toast.makeText(HTMLActivity.this, "bitmap " + bitmap.toString(), Toast.LENGTH_LONG).show();
            Canvas canvas = new Canvas(bitmap);
            canvas.drawPicture(pictureDrawable.getPicture());
            return bitmap;
        }

这里是一个示例,展示我在代码中正在做什么:

    private Picture picture;
    private String url;
    private WebView webview;
    private Bitmap HTMLBitmap;
    private PictureDrawable HTMLPicDraw;

     // goal is to convert WebView --> Picture --> PictureDrawable --> Bitmap
        picture = webview.capturePicture();
        HTMLPicDraw = new PictureDrawable(picture);
      // HTMLPicDraw a PictureDrawable object is good, no null pointer exception here
      // what is left is to go from PictureDrawable to Bitmap
1个回答

1
使用以下代码,它对我有效......
//  get bitmap from view
public static Bitmap getBitmapFromView(View view) {
            Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(returnedBitmap);
            Drawable bgDrawable =view.getBackground();
            if (bgDrawable!=null) 
                bgDrawable.draw(canvas);
          /*  else 
                canvas.drawColor(Color.WHITE);*/
            view.draw(canvas);
            return returnedBitmap;
        }

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