记录一下Android 长截屏功能
需求对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 长截屏功能相关推荐
- android实现长截屏,Android实现全屏截图或长截屏功能
本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...
- android截全屏方法,Android实现全屏截图或长截屏功能
本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...
- android长截图工具下载,Android实现长截屏功能
本文实例为大家分享了Android实现长截屏功能的具体代码,供大家参考,具体内容如下 1.MainActivity public class MainActivity extends AppCompa ...
- android长截屏代码,android长截屏原理及实现代码
android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...
- android自动截图实现,Android实现截屏功能
原标题:Android实现截屏功能 该方法主要利用SDK提供的view.getDrawingCache()方法,主要步骤如下: 设置view.setDrawingCacheEnabled(true) ...
- 苹果xr截屏怎么截_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 注:本文转载自网络,如有侵权,请联系删除 你关注的 ...
- 苹果平板如何截屏_原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚...
原来苹果手机自带长截屏功能!以前一直不知道,真让人相见恨晚. 关于长截图,苹果用户总是比安卓用户更加艰难一些,因为还需要利用一些第三方软件才能够截图. 最近才发现,原来苹果手机也能够轻松实现长截图功能 ...
- 苹果x怎么截屏_涨知识!原来iPhone手机新增了长截屏功能,简单好用
涨知识!原来iPhone手机新增了长截屏功能,简单好用 手机截屏是每个智能手机都拥有的功能,但每款手机的截屏方式却各不相同.比如苹果手机用户想要使用长截屏的话就非常麻烦. 不过最近小科发现原来苹果手机 ...
- Android 中截屏功能的实现
之前写过一个关于截图的功能,但那个是基于咱们控件的截取,如果出了自己的项目,或者层次结构复杂了,一般不好操作了就.今天学习了一个截屏工具的制作方法,在这里记录一下. 我们的代码全部基于Android中 ...
- 苹果xr如何截屏_苹果手机居然自带长截屏功能了?iPhone的多种截屏方式,涨知识了...
苹果手机和安卓手机各有千秋,很多使用苹果手机的小伙伴都说,安卓手机截长图这么简单,为什么苹果手机还需要下载一些软件才行?今天小编就来分享一下苹果手机的截图方式以及升级了iOS13之后如何长截屏. 一. ...
最新文章
- 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施...
- 三容水箱液位控制系统_三容水箱液位控制系统的建模及仿真.doc
- 从0到1,网上搜不到的企业信息安全搭建全过程,这本书讲透了!
- 什么是事务(transaction)?它有什么好处
- clickhouse 子查询_TPCDS用于Clickhouse和Doris性能测试
- SAP Cloud Platform Identity Authentication service
- datatables 展开 折叠_【图说新机】9月折叠屏、屏下摄像头新机同时上市,该怎么选?...
- 前端学习(1386):多人管理项目6骨架
- 半夜,滴滴司机问我会LRU吗?
- Gobinet/QMI-WWAN/ppp拨号区别
- 【论文详解】词向量ELMo: Embeddings from Language Models
- C++ 二维数组作为形参传递使用实例
- 订单生产计划表范本_生产计划表(生产计划表格模板)
- 爬虫:财政部PPP项目库
- 霍尔传感器学习使用心得
- Windows获取本地安装软件详细信息(对标卸载程序控制面板)
- Docker安装MoogoDB, 进入容器, mongo shell操作mongoDB
- 一张图慢慢转换成下一张图_给一张照片做一个视频 如何把一张图片制作成几分钟的视频|图片做成视频软件...
- 更改Windows桌面位置为D盘
- WiFi-ESP8266入门http(3-2)网页认证上网-post请求