Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 捕获webview';将当前显示转换为位图_Android - Fatal编程技术网

Android 捕获webview';将当前显示转换为位图

Android 捕获webview';将当前显示转换为位图,android,Android,我有一个webview,它将加载一个大的html文件。webview是可滚动的,用户可以通过滚动查看其余页面。当用户向下滚动页面时,我希望在某个时候获得webview的位图图像(用户当前看到的),而不是整个页面的图像。我知道webView.capturePicture()可以创建图片,但它可以提供整个网页的图像。 我尝试了下面的代码片段,但它给出了html文件起始页的图像,即使用户已多次向下滚动页面 WebView webView = new WebView(getApplication

我有一个webview,它将加载一个大的html文件。webview是可滚动的,用户可以通过滚动查看其余页面。当用户向下滚动页面时,我希望在某个时候获得webview的位图图像(用户当前看到的),而不是整个页面的图像。我知道webView.capturePicture()可以创建图片,但它可以提供整个网页的图像。 我尝试了下面的代码片段,但它给出了html文件起始页的图像,即使用户已多次向下滚动页面

    WebView webView = new WebView(getApplicationContext());

    webView.setVerticalScrollBarEnabled(true);
    webView.setHorizontalScrollBarEnabled(false);
    webView.getSettings().setBuiltInZoomControls(false);
    webView.getSettings().setUseWideViewPort(false);
    webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
    webView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM);
    webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            //pageFinished = true;
        }
    });
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
    webView.loadUrl("file://"+Environment.getExternalStorageDirectory() + "/main.html");
在按钮的onClick()中,我使用以下代码获取webview的快照:

    try {
        Bitmap bitmap = Bitmap.createBitmap(webView.getWidth(), webView.getHeight(),
                Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap);

            webView.draw(canvas);
            FileOutputStream out = new FileOutputStream(
                            Environment.getExternalStorageDirectory()
                                    + "/out.png");
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); // saving bitmap
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
感谢您的帮助

提前感谢,, 苏吉