如何将PictureDrawable转换为Bitmap

时间:2013-03-21 09:22:03

标签: android bitmap type-conversion image

如何将PictureDrawable对象转换为Bitmap对象?我尝试了下面显示的以下代码,它给出了空指针。

       //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 个答案:

答案 0 :(得分:1)

使用belove代码,它对我有用.....

//  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;
        }