2013-03-21 87 views
4

如何将PictureDrawable对象转换为Bitmap对象?我试过下面的代码,它给出了空指针。如何将PictureDrawable转换为位图

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

使用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; 
     }