Android webView显示完成后截图_tongyuchi123_新浪博客

今天来和大家探讨一个问题,那就是WebView,webView内部可以有截图这个功能的,而且截取的是整个网页的大小,并且用ImageView进行显示,其实最主要的是抓住问题的关键,那么就是等网页显示完成了在进行截图的操作。

但是如何知道网页已经加载完成了呢,我们可以用webView提供的方法onProgressChanged来判断进度,但是偶尔的时候还是有bug,爆的错误说截取的宽和高必须得大于0,但是如果我们判断它大于0了,那么他就会出现白屏了,什么都不出现了。问题纠结了,想来想去,我们可以这样如果他小于的时候在进行加载网页,这样的做法貌似有那么一点不好!不过我试了一下没什么问题。好了废话不说了,添上代码再说:

下面是关键的代码:

webView.setWebChromeClient(new WebChromeClient() {

public void onProgressChanged(WebView view, int newProgress)

{

if (newProgress == 100) {

// bmp = captureWebView(view);

// image.setBackgroundDrawable(new BitmapDrawable(bmp));

// webView.setVisibility(View.GONE);

Picture picture = webView.capturePicture();

int width = picture.getWidth();

int height = picture.getHeight();

if (width > 0 && height > 0) {

Bitmap bmp = Bitmap.createBitmap(width, height,

Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bmp);

picture.draw(canvas);

image.setBackgroundDrawable(new BitmapDrawable(bmp));

webView.setVisibility(View.GONE);

}else{

webView.loadUrl(“http://www.baidu.com”);

webView.setDrawingCacheEnabled(true);

}

}

}

});

webView.loadUrl(“http://www.baidu.com”);

webView.setDrawingCacheEnabled(true);

希望同学们尊重劳动成果,给予评价。

来源URL:http://blog.sina.com.cn/s/blog_acf41ccb01018bvc.html