捕获android webview图像并保存到png / jpeg

时间:2013-03-12 00:41:06

标签: android html cordova

我试图在android / phonegap应用上实现css3页面翻转效果。为此,我需要将当前webview动态保存到png或jpeg,以便可以将其加载到页面翻转html中的div。我在android的文档中注意到了Picture类,但我不确定是否可以转换和保存它。这可以通过JS完成吗?有什么想法吗?

感谢

2 个答案:

答案 0 :(得分:6)

尝试使用以下代码捕获webview并将jpg保存到SD卡。

webview.setWebViewClient(new WebViewClient() {

    @Override
    public void onPageFinished(WebView view, String url) {
        Picture picture = view.capturePicture();
        Bitmap b = Bitmap.createBitmap(
            picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        picture.draw(c);

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream( "/sdcard/"  + "page.jpg" );
            if ( fos != null ) {
                b.compress(Bitmap.CompressFormat.JPEG, 90, fos );
                fos.close();
            }
        } 
        catch( Exception e ) {
            System.out.println("-----error--"+e);
        }
    }
});

webview.loadUrl("http://stackoverflow.com/questions/15351298/capturing-android-webview-image-and-saving-to-png-jpeg");

答案 1 :(得分:0)

View作为图片捕获的最简单方法(据我所知)是创建新的Bitmap和新的Canvas。然后,只需要求你的WebView在自己的Canvas上绘制自己而不是Activity的默认值。

伪代码:

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
myWebView.draw(canvas);
//save your bitmap, do whatever you need