WebView 截取长图
直接上代码了 稳稳的 屏幕外也可以实现截取 public static void getViewBitmap(View view) {WebView webview = (WebView) view;//测量webview 实际的大小 包括屏幕外的webview.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED),View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));webview.layout(0, 0, webview.getMeasuredWidth(), webview.getMeasuredHeight());//启用View的DrawingCache功能webview.buildDrawingCache(true);webview.setDrawingCacheEnabled(true);webview.setVerticalScrollBarEnabled(false);webview.buildDrawingCache();// 延时保存图片 必须延时不然会出现截取部分白屏 new Handler().postDelayed(() -> {Bitmap bitmap =convertViewToBitmap(webview, webview.getMeasuredWidth(), webview.getMeasuredHeight());Canvas canvas = new Canvas(bitmap);// 画布的宽高和 WebView 的网页保持一致Paint paint = new Paint();canvas.drawBitmap(bitmap, 0, webview.getMeasuredHeight(), paint);webview.draw(canvas);try {//保存bitmap 为本地图片或做其他处理saveFile(webview, bitmap);} catch (IOException e) {e.printStackTrace();}}, 500);}
/*** 绘制view的bitmap * @param view 要绘制的view * @param bitmapWidth 绘制宽 传入实际宽高* @param bitmapHeight 绘制高* @return*/ private static Bitmap convertViewToBitmap(View view, int bitmapWidth, int bitmapHeight) {Bitmap bitmap = null;try {bitmap = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Config.ARGB_4444);view.draw(new Canvas(bitmap));} catch (OutOfMemoryError ooe) {System.gc();return bitmap;}return bitmap; }
注意事项 : 1.webview 在截取完成后 会失去焦点 不能在滚动了 (处理方法:reload 或手动滚动webview)
2.webview 会截取不到部分三方框架绘制的图 (可转换成image 后在进行截取)
3. 获取图片后 切记 执行webview.buildDrawingCache(false);
WebView 截取长图相关推荐
- android webview 截图,android WebView 截取长图 《转载》
先看看手机自带的长截屏功能: 机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的View 2:截取View在屏幕渲染的内容 3:不断滚动View,截取View渲染的内容,存储 ...
- WebView截长图解决方案
作者:Windin 贝聊移动Android工程师 链接: http://www.jianshu.com/p/0faa70e88441 前言:本文主要讲述了以下两个方面: 1. 普通WebView如何截 ...
- 电脑如何截长图?如何用电脑截取长图——规划全景
一个规划的,想知道如何用电脑截取长图--规划全景 1.F12 2.Ctrl+Shift+P 3.full
- Snagit for Mac 如何截取长图,滚动截图?
困扰我很久了,为了在mac上截取长图,今天终于成功了. 如下图: 第一步:选择image. 第二步:Selection选择Panoramic,就是选择滚动截图的意思. 第三步:到达你想要滚动截图,也就 ...
- WebView 截长图
今天在APP架构师看到这个,因为以前做过有点模糊了,所以接他之手记一记. 介绍 web 长图之前,先来说一下单屏图片的生成方案,和手机截图不同的是生成的图片不会显示顶部的状态栏.标题栏以及底部的菜单栏 ...
- jquery实现截取pc图片_如何优雅的对网页截取长图
苏生不惑第115 篇原创文章,将本公众号设为星标,第一时间看最新文章. 最近写文章想截个长图,才发现一直使用的QQ早有这个功能了,这里就整理几个pc上网页长截图的方案. qq滚动截图 qq截图应该很多 ...
- 一个操作轻松截取长图,Win10上网截长图小技巧!
截屏的方法有很多,但是有时候我们会遇到比电脑屏幕还大的图,比如网站上的长图.N条引用的评论...你要怎么截取呢?是不是最多只能截全屏?还是要做到第三方的截图软件呢? 下面介绍一种win10电脑自带的滚 ...
- android WebView截长图实现
1.先简单介绍下webview截屏,看代码: //开启缓存 webview.setDrawingCacheEnabled(true); webview.buildDrawingCache();Bitm ...
- iOS截取长图,自定义截取size
之前做过在查看商品详情时,需要截取很长的图片进行分享,已经超出一屏幕的显示范围: - (UIImage *)captureScrollView:(UIScrollView *)scrollView { ...
- Fast Stone超好用的截图工具,可截取长图,带滚动条的页面
2019独角兽企业重金招聘Python工程师标准>>> Fast Stone下载地址:http://www.mydown.com/soft/402/473304402.shtml 注 ...
最新文章
- DataBind数据核心
- m_Orchestrate learning system---七、如何快速学好前端
- mysql_select按照指定的格式输出到文件
- Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息
- SAP UI5 busy Dialog debug - 单步调试
- C和指针之字符串strchr、strpbrk、strstr
- 两年发表14篇论文,其中10篇一作,这是她的科研进阶攻略
- 搭建Servlet在线视频
- Epic高管:虚幻4引擎目标是不同规模开发商
- 52 - 算法 - LeetCode 21 数据结构链表 头插法 递归
- Redis——持久化RDB和AOF
- mybatis3源码2-查询
- Java配置环境变量32位
- HTML炫酷粒子源代码
- angular ui-bootstrap的Datepicker Popup组件问题总结
- excel 将图片的链接URL 显示为图片 转
- 网络工程师知识点整理—第五章:无线通信网
- 在迷茫中坚守的Neri,可能是惠普企业(HPE)的最后一位高管
- 2017java开发新技术
- CentOS下载教程