介绍
本篇文章为大家展示了怎么在Android中利用WebView实现一个截长图功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强> 1。以WebView控件为介绍对象强>
& lt; WebView ,android: id=癅 + id/web_view", ,android: layout_width=癿atch_parent", ,android: layout_height=癿atch_parent"/祝辞
<强> 2。获取视图渲染的内容
强>
//1:打开缓存开关, view.setDrawingCacheEnabled(真正的),,//2:获取缓存, Bitmap drawingCache =, view.getDrawingCache (),,//3:拷贝图片(这里就是我们需要的截图内容啦), Bitmap newBitmap =, Bitmap.createBitmap (drawingCache);,//4:关闭缓存开关, view.setDrawingCacheEnabled(假);
<强> 3。不断滚动看来,截取视图渲染的内容,存储到容器中
强>
滚动的方法
//这些都是视图的方法, webView.setScrollY (),, webView.scrollTo (),, webView.scrollBy ();
<强>每次滚动多少距离?强>
假设我们的WebView是宽高占满屏幕的,那么通过getDrawingCache()方法,是获取WebView在屏幕显示渲染的内容,那么WebView控件的高度就是我们每次滚动的距离。
<强>滚动几次?强>
滚动次数=WebView内容的高度/WebView控件的高度+ 1(有余数的情况下会多滚动1次)
假设:内容高度为3840,控件高度为1920,那么我们只需滚动两次,2次截图
内容高度为4000,控件高度为1920,会160余高度没有截取,需要截图3次,所有需要滚动次数要+ 1
核心代码:
//1:发起测量, mWebView.measure (0, 0),,//2:获取测量后高度,==,Webview的高度, int contentHeight =, mWebView.getMeasuredHeight (),,//3:获取Webview控件的高度, int height =, mWebView.getHeight (),,//4:计算滚动次数, int totalScrollCount =, contentHeight /,身高,,//5:,剩余高度, int surplusScrollHeight =, contentHeight 作用;(totalScrollCount *,高度),, ,//存储图片容器, List<>强4。组装拼接图片强>
,遗憾的是,谷歌并没有提供组装图片的api,所有就我们需要自己画啦
,什么?自己画?
,没错,就是自己画啦,在android中画的画,跟现实世界画画步骤一样的,同样要先准备纸,画板,画笔。
核心代码:,,,,
public Bitmap mergeBitmap (List怎么在Android中利用WebView实现一个截长图功能