2013-03-21 48 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; 
     }