将屏幕外WebView绘制为位图

时间:2011-06-24 11:38:12

标签: android bitmap webview

我正在尝试捕获屏幕上绘制的webview图像给android中的用户,我总是以黑色图像结束。这是正确的大小,一切都不是

以下是我正在使用的代码:

String theURL = "file:///android_asset/www/pages/page2.html";
        WebView webview = new WebView(ctx);
        webview.loadUrl(theURL);
        Bitmap bm = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(bm);
        webview.draw(c);
        OutputStream stream = null;
        try {
            stream = new FileOutputStream(Environment.getExternalStorageDirectory() +"/page.jpg");
            bm.compress(CompressFormat.JPEG, 80, stream);
            if (stream != null) stream.close();              
            return new PluginResult(PluginResult.Status.OK); 
        } catch (IOException e) {
            return new PluginResult(PluginResult.Status.ERROR, e.toString());
        } finally {
            bm.recycle();
        }       

谢谢,如果有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

webview.loadUrl(theURL);开始加载页面,这可能需要一段时间。在绘制webview之前等待,直到加载页面。您可以使用setWebViewClient(WebViewClient client)设置对象,以便在页面加载完成后接收通知。