Android 如何将PicturedRavable转换为位图
如何将PicturedRavable对象转换为位图对象?我尝试了下面显示的代码,它给出了空指针Android 如何将PicturedRavable转换为位图,android,bitmap,type-conversion,image,Android,Bitmap,Type Conversion,Image,如何将PicturedRavable对象转换为位图对象?我尝试了下面显示的代码,它给出了空指针 //Convert PictureDrawable to Bitmap private Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable){ Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsi
//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
使用下面的代码,它为我工作
// 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;
}