我有一个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");
在Button的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();
}
感谢任何帮助。
提前致谢, 筋