我想要保存从WebView
的capturePicture方法获取到的图片,应该如何操作?
web = new WebView(this);
web.setPictureListener(new PictureListener(){
public void onNewPicture(WebView view, Picture picture) {
if(picture != null)
{
try
{
Bitmap bmp = pictureDrawable2Bitmap(new PictureDrawable(picture));
FileOutputStream out = new FileOutputStream(filename);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
web.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView webview, String url) {
Picture picture = webview.capturePicture();
}
});
web.getSettings().setJavaScriptEnabled(true);
setContentView(web);
辅助函数
private static Bitmap pictureDrawable2Bitmap(PictureDrawable pictureDrawable){
Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWidth()
,pictureDrawable.getIntrinsicHeight()
, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(pictureDrawable.getPicture());
return bitmap;
}
免责声明:我实际上没有编译过这个代码,但应该能正常运行