作者:Windin 贝聊移动开发部 Android工程师
前言:本文主要讲述了以下两个方面:
- 普通
WebView如何截取长图- 针对
X5内核中WebView如何截取长图
日常开发中,遇到为WebView截取长图算是一种常见的需求。网上聪明的程序员们提供了多种截取WebView长图的方法,这为我们的开发提供了很多便利。现在,也有很多APP是集成了X5内核的,网上对于X5内核的截长图方案介绍比较少,所以这里我整理了对WebView截取长图的比较通用可行的方法,并且对使用了x5内核的WebView的截图方法进行分享。
一、普通WebView截长图方案
普通WebView截取长图,这里是指项目中没有集成X5内核的情况。利用Google文档上的api可以顺利截图。以Android5.0为版本分界线,截图采用不同的处理方式。
1. Android5.0以下版本
/**
* 对WebView进行截屏,虽然使用过期方法,但在当前Android版本中测试可行
*
* @param webView
* @return
*/
private static Bitmap captureWebViewKitKat(WebView webView) {
Picture picture = webView.capturePicture();
int width = picture.getWidth();
int height = picture.getHeight();
if (width > 0 && height > 0) {
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
picture.draw(canvas);
return bitmap;
}
return null;
}
}
2. Android5.0及以上版本
在Android5.0及以上版本,Android对WebView进行了优化,为了减少内存使用和提高性能,使用WebView加载网页时只绘制显示部分。如果我们不做处理,仍然使用上述代码截图的话,就会出现只截到屏幕内显示的We

本文探讨了在Android中截取WebView长图的两种方法,包括普通截长图方案和针对X5内核的截取策略。对于Android 5.0以下和以上版本,分别给出了不同的处理方式。在X5内核下,介绍了使用内核自带方法和截取清晰长图的方法。文章还提醒开发者注意截图可能导致的内存消耗和OOM问题。
最低0.47元/天 解锁文章
615

被折叠的 条评论
为什么被折叠?



