如何将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
答案 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;
}