一、在腾讯X5 webView中截取长图
实现代码如下:

/*** 腾讯X5 WebView截取长图** @param context  上下文* @param mWebView 腾讯X5 WebView* @return 截取的长图*/public static Bitmap webViewShot(Context context, WebView mWebView) {// 这里的 mWebView 就是 X5 内核的 WebView ,代码中的 longImage 就是最后生成的长图mWebView.measure(MeasureSpec.makeMeasureSpec(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));mWebView.layout(0, 0, mWebView.getMeasuredWidth(), mWebView.getMeasuredHeight());mWebView.setDrawingCacheEnabled(true);mWebView.buildDrawingCache();Bitmap longImage = Bitmap.createBitmap(mWebView.getMeasuredWidth(),mWebView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);// 画布的宽高和 WebView 的网页保持一致Canvas canvas = new Canvas(longImage);Paint paint = new Paint();canvas.drawBitmap(longImage, 0, mWebView.getMeasuredHeight(), paint);float scale = context.getResources().getDisplayMetrics().density;Bitmap x5Bitmap = Bitmap.createBitmap(mWebView.getWidth(), mWebView.getHeight(), Bitmap.Config.ARGB_8888);Canvas x5Canvas = new Canvas(x5Bitmap);x5Canvas.drawColor(Color.WHITE);// 少了这行代码就无法正常生成长图mWebView.getX5WebViewExtension().snapshotWholePage(x5Canvas, false, false);Matrix matrix = new Matrix();matrix.setScale(scale, scale);canvas.drawBitmap(x5Bitmap, matrix, paint);return longImage;}

二、更加通用的方法,但是影响性能
通过JS注入“document.body.offsetHeight”命令,获取网页高度
然后将webView的高度设置为此高度
自然webview就会将所有内容渲染出来
最后使用View.draw()即可

参考链接:Android截屏与WebView长图分享经验总结

WebView截取长图相关推荐

  1. android webview 截图,android WebView 截取长图 《转载》

    先看看手机自带的长截屏功能: 机型: vivo x9 plus 大胆推测实现逻辑: 1:需要一个可以滚动的View 2:截取View在屏幕渲染的内容 3:不断滚动View,截取View渲染的内容,存储 ...

  2. WebView截长图解决方案

    作者:Windin 贝聊移动Android工程师 链接: http://www.jianshu.com/p/0faa70e88441 前言:本文主要讲述了以下两个方面: 1. 普通WebView如何截 ...

  3. 电脑如何截长图?如何用电脑截取长图——规划全景

    一个规划的,想知道如何用电脑截取长图--规划全景 1.F12    2.Ctrl+Shift+P 3.full

  4. Snagit for Mac 如何截取长图,滚动截图?

    困扰我很久了,为了在mac上截取长图,今天终于成功了. 如下图: 第一步:选择image. 第二步:Selection选择Panoramic,就是选择滚动截图的意思. 第三步:到达你想要滚动截图,也就 ...

  5. WebView 截长图

    今天在APP架构师看到这个,因为以前做过有点模糊了,所以接他之手记一记. 介绍 web 长图之前,先来说一下单屏图片的生成方案,和手机截图不同的是生成的图片不会显示顶部的状态栏.标题栏以及底部的菜单栏 ...

  6. jquery实现截取pc图片_如何优雅的对网页截取长图

    苏生不惑第115 篇原创文章,将本公众号设为星标,第一时间看最新文章. 最近写文章想截个长图,才发现一直使用的QQ早有这个功能了,这里就整理几个pc上网页长截图的方案. qq滚动截图 qq截图应该很多 ...

  7. 一个操作轻松截取长图,Win10上网截长图小技巧!

    截屏的方法有很多,但是有时候我们会遇到比电脑屏幕还大的图,比如网站上的长图.N条引用的评论...你要怎么截取呢?是不是最多只能截全屏?还是要做到第三方的截图软件呢? 下面介绍一种win10电脑自带的滚 ...

  8. android WebView截长图实现

    1.先简单介绍下webview截屏,看代码: //开启缓存 webview.setDrawingCacheEnabled(true); webview.buildDrawingCache();Bitm ...

  9. iOS截取长图,自定义截取size

    之前做过在查看商品详情时,需要截取很长的图片进行分享,已经超出一屏幕的显示范围: - (UIImage *)captureScrollView:(UIScrollView *)scrollView { ...

  10. Fast Stone超好用的截图工具,可截取长图,带滚动条的页面

    2019独角兽企业重金招聘Python工程师标准>>> Fast Stone下载地址:http://www.mydown.com/soft/402/473304402.shtml 注 ...

最新文章

  1. 乌鲁木齐市计算机职业高中,乌鲁木齐职高有哪些专业
  2. TCP-Z V2.6.2 Build 20090409 (半开连接数监控与破解)
  3. 堆排序-Python
  4. Windows下Core Audio APIs的使用简介
  5. jboss数据源配置
  6. MySQL中 JSON 数据类型应用
  7. 【Java】《基于Java的面向对象范式》学习笔记分享
  8. 阿里最“短命”P10员工?曝前百度云高管加盟钉钉不足三周被开除
  9. SAP License:ERP企业资源计划
  10. 微软想通了?Windows 11恢复一键改变默认浏览器功能
  11. 翻译:通过使用终端(iTerm2&Oh my ZSH)来提高您的生产率
  12. AD20使用之用封装创建向导创建封装
  13. 用c语言编写车牌识别系统,这算干货吗?写点车牌识别系统方案
  14. Google Chrome 提示 Adobe Flash Player 不是最新版本
  15. 临湘东经子午线经度_地区经度查询_实用查询工具大全 - Powered by Senlon!
  16. 蘑菇街测试开发实习生面经
  17. 共享充电宝方案怎么做
  18. 【Touch】触摸事件onTouch
  19. 顺序栈(含有栈顶指针,栈底指针)的实现以及编写过程中的一些疑惑的解决
  20. nvidia jetson nano 操作指南

热门文章

  1. mysql +cobar_cobar
  2. 日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践
  3. Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解
  4. 最新淘汰服务器cpu,2019 最新 至强 Xeon E3服务器系列 CPU天梯图
  5. 775针服务器cpu性能排行,e7500(775针cpu天梯图)
  6. XUI框架之FlowTagLayout流标签的使用,实现原生android没有的功能?
  7. 第二十次CCF CSP认证考试经验
  8. 用H5STEAM实现大华摄像头的WEB开发
  9. 薄板样条插值(Thin Plate Spline)
  10. 利用ArcGIS的计算几何批量计算线要素长度