将屏幕外WebView绘制为位图

Ric*_*ich 5 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();
        }       
Run Code Online (Sandbox Code Playgroud)

谢谢,如果有人可以帮忙.

Ren*_*ene 0

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