需求对webview进行截屏,可以大于一屏

代码:

在setContentView之前调用

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {WebView.enableSlowWholeDocumentDraw();}

对大于5.0的版本处理,防止截屏不全。

public static Bitmap capture(WebView webView) {Picture picture = webView.capturePicture();int width = picture.getWidth();int height = picture.getHeight();Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);picture.draw(canvas);return bitmap;}

扩展:截屏listview,scrollview

 /*** 截取scrollview的屏幕* **/public static Bitmap getScrollViewBitmap(ScrollView scrollView) {int h = 0;Bitmap bitmap;for (int i = 0; i < scrollView.getChildCount(); i++) {h += scrollView.getChildAt(i).getHeight();}// 创建对应大小的bitmapbitmap = Bitmap.createBitmap(scrollView.getWidth(), h,Bitmap.Config.ARGB_8888);final Canvas canvas = new Canvas(bitmap);scrollView.draw(canvas);return bitmap;}
//截取超过一屏的listviewpublic static Bitmap shotListView(ListView listview) {ListAdapter adapter = listview.getAdapter();int itemscount = adapter.getCount();int allitemsheight = 0;List<Bitmap> bmps = new ArrayList<Bitmap>();for (int i = 0; i < itemscount; i++) {View childView = adapter.getView(i, null, listview);childView.measure(View.MeasureSpec.makeMeasureSpec(listview.getWidth(), View.MeasureSpec.EXACTLY),View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));childView.layout(0, 0, childView.getMeasuredWidth(), childView.getMeasuredHeight());childView.setDrawingCacheEnabled(true);childView.buildDrawingCache();bmps.add(childView.getDrawingCache());allitemsheight += childView.getMeasuredHeight();}int w = listview.getMeasuredWidth();Bitmap bigbitmap = Bitmap.createBitmap(w, allitemsheight, Bitmap.Config.ARGB_8888);Canvas bigcanvas = new Canvas(bigbitmap);Paint paint = new Paint();int iHeight = 0;for (int i = 0; i < bmps.size(); i++) {Bitmap bmp = bmps.get(i);bigcanvas.drawBitmap(bmp, 0, iHeight, paint);iHeight += bmp.getHeight();bmp.recycle();bmp = null;}return bigbitmap;}

截取不超过一屏的listview

/***  截图listview* **/public static Bitmap getListViewBitmap(ListView listView,String picpath) {int h = 0;Bitmap bitmap;// 获取listView实际高度for (int i = 0; i < listView.getChildCount(); i++) {h += listView.getChildAt(i).getHeight();}Log.d(TAG, "实际高度:" + h);Log.d(TAG, "list 高度:" + listView.getHeight());// 创建对应大小的bitmapbitmap = Bitmap.createBitmap(listView.getWidth(), h,Bitmap.Config.ARGB_8888);final Canvas canvas = new Canvas(bitmap);listView.draw(canvas);return bitmap;}

记录一下Android 长截屏功能相关推荐

  1. android实现长截屏,Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...

  2. android截全屏方法,Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...

  3. android长截图工具下载,Android实现长截屏功能

    本文实例为大家分享了Android实现长截屏功能的具体代码,供大家参考,具体内容如下 1.MainActivity public class MainActivity extends AppCompa ...

  4. android长截屏代码,android长截屏原理及实现代码

    android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...

  5. android自动截图实现,Android实现截屏功能

    原标题:Android实现截屏功能 该方法主要利用SDK提供的view.getDrawingCache()方法,主要步骤如下: 设置view.setDrawingCacheEnabled(true) ...

  6. 苹果xr截屏怎么截_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,如有侵权,请联系删除 你关注的 ...

  7. 苹果平板如何截屏_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...

    原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚. 关于长截图,苹果用户总是比安卓用户更加艰难一些,因为还需要利用一些第三方软件才能够截图. 最近才发现,原来苹果手机也能够轻松实现长截图功能 ...

  8. 苹果x怎么截屏_涨知识!原来iPhone手机新增了长截屏功能,简单好用

    涨知识!原来iPhone手机新增了长截屏功能,简单好用 手机截屏是每个智能手机都拥有的功能,但每款手机的截屏方式却各不相同.比如苹果手机用户想要使用长截屏的话就非常麻烦. 不过最近小科发现原来苹果手机 ...

  9. Android 中截屏功能的实现

    之前写过一个关于截图的功能,但那个是基于咱们控件的截取,如果出了自己的项目,或者层次结构复杂了,一般不好操作了就.今天学习了一个截屏工具的制作方法,在这里记录一下. 我们的代码全部基于Android中 ...

  10. 苹果xr如何截屏_苹果手机居然自带长截屏功能了?iPhone的多种截屏方式,涨知识了...

    苹果手机和安卓手机各有千秋,很多使用苹果手机的小伙伴都说,安卓手机截长图这么简单,为什么苹果手机还需要下载一些软件才行?今天小编就来分享一下苹果手机的截图方式以及升级了iOS13之后如何长截屏. 一. ...

最新文章

  1. 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施...
  2. 三容水箱液位控制系统_三容水箱液位控制系统的建模及仿真.doc
  3. 从0到1,网上搜不到的企业信息安全搭建全过程,这本书讲透了!
  4. 什么是事务(transaction)?它有什么好处
  5. clickhouse 子查询_TPCDS用于Clickhouse和Doris性能测试
  6. SAP Cloud Platform Identity Authentication service
  7. datatables 展开 折叠_【图说新机】9月折叠屏、屏下摄像头新机同时上市,该怎么选?...
  8. 前端学习(1386):多人管理项目6骨架
  9. 半夜,滴滴司机问我会LRU吗?
  10. Gobinet/QMI-WWAN/ppp拨号区别
  11. 【论文详解】词向量ELMo: Embeddings from Language Models
  12. C++ 二维数组作为形参传递使用实例
  13. 订单生产计划表范本_生产计划表(生产计划表格模板)
  14. 爬虫:财政部PPP项目库
  15. 霍尔传感器学习使用心得
  16. Windows获取本地安装软件详细信息(对标卸载程序控制面板)
  17. Docker安装MoogoDB, 进入容器, mongo shell操作mongoDB
  18. 一张图慢慢转换成下一张图_给一张照片做一个视频 如何把一张图片制作成几分钟的视频|图片做成视频软件...
  19. 更改Windows桌面位置为D盘
  20. WiFi-ESP8266入门http(3-2)网页认证上网-post请求

热门文章

  1. 犀牛插件-插件开发-rhino-插件开发形式
  2. NMEA-0183 协议
  3. CAD插件学习系列教程(五) 小菜选择易
  4. USBCNC输出板与VFD和主轴的使用
  5. java udp发送速率_项目总结22:Java UDP Socket数据的发送和接收
  6. 幼儿识字软件测试自学,2016幼儿识字APP哪家强?最新测评出炉!
  7. 【雷达与对抗】【2014.06】荷兰人工育滩工程Sand Motor的X波段雷达深度反演模型研制
  8. 界面测试和易用性测试
  9. 如何做一个淘宝客(前期为自己省钱)
  10. 同步IO和异步IO的区别