怎么在Android中利用WebView实现一个截长图功能

  介绍

本篇文章为大家展示了怎么在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实现一个截长图功能