[发明专利]一种快速截取多屏幕长图的方法有效
申请号: | 201710587330.9 | 申请日: | 2017-07-18 |
公开(公告)号: | CN107450915B | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 龚翔 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F3/0482 |
代理公司: | 四川省成都市天策商标专利事务所 51213 | 代理人: | 刘兴亮;李洁 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 快速 截取 屏幕 方法 | ||
本发明公开了一种快速截取多屏幕长图的方法,包括:步骤一、获取当前列表类视图的宽度,并存储在gWidth变量中;步骤二、获取所有的子视图数量,对每个子视图开始处理;步骤三、获取子视图的属性规格;步骤四、子视图的尺寸规格确定好以后,获得作为视图对象的子视图的大小;步骤五、通过上述方式,确定需要截取多屏幕长图的宽度gWidth和高度totalheight,创建一块位图对象,并创建与此位图对象对应的画布对象;并将子视图缓存像素帧依次绘制到画布中,生成截屏图像,输出结果。本发明可以一次性计算出完整长图的大小,并截取多屏幕长图,方便用户,处理快捷。
技术领域
本发明涉及屏幕截图的方法,具体涉及一种移动终端快速截取多屏幕长图的方法,属于图像处理技术领域。
背景技术
移动终端的便携性的特点,限制了移动终端屏幕的大小,导致用户经常会遇到需要显示的内容无法完整的在一屏内完全展现。使用传统的截图方式是用户只能截取当前屏幕的内容,如果需要截取的内容大小超出当前屏幕区域,则需要重新调整显示内容坐标(使用但不限于翻页,滚动等方式),然后再次截取一个屏幕大小的图像,如此反复。这样会产生许多零散的屏幕截图,非常不方便保存、再次编辑以及分享。
发明内容
本发明的目的是要解决目前屏幕截图中,截取一副图像大小不能超过当屏幕的大小,截图操作繁琐,效率较低,后期编辑及分享不便的问题。提供了一种在android系统中基于列表类快速截取多屏幕长图的方法。
本发明是这样实现的:
一种快速截取多屏幕长图的方法,包括以下步骤:
步骤一、获取当前列表类视图的宽度,并将它存储在gWidth变量中;
步骤二、获取所有的子视图数量,对每个子视图开始处理;
步骤三、获取子视图的属性规格,通过调用measureChildWithMargins方法,该方法处理的逻辑:计算子视图的measureSpec,即视图位置和视图大小,调用方法为:getChildMeasureSpec方法,调用两次,分别计算视图位置和视图大小;getChildMeasureSpec 方法内部根据父视图的measureSpec属性和子视图的宽度和高度属性,计算子视图的属性规格;
步骤四、子视图的尺寸规格确定好以后,如果子视图是视图对象,则该视图的大小测量结束,并将计算出子视图高度值累加到变量totalheight中;如果子视图是ViewGroup,那么,又开始一个新的递归,处理逻辑和前面一样,直到所有的视图对象测量结束;
步骤五、通过上述方式,确定需要截取多屏幕长图的宽度gWidth和高度totalheight, 创建一块位图对象,并创建与此位图对象对应的画布对象;并将子视图缓存像素帧依次绘制到画布中,生成截屏图像,输出结果。
更进一步的方案是:
步骤一中,列表类视图为根列表类视图时,根列表类视图的宽度与屏幕宽度相等,通过获取屏幕宽度,确定gWidth的值。
更进一步的方案是:
步骤二中,当子视图属性是不可见属性,则跳过此视图,处理下一个视图。
更进一步的方案是:
步骤五中,所述位图大小为:gWidth*totalheight大小。
本发明的有益效果是,本发明提供的速截取多屏幕长图的方案,相比普通的截屏方案,本发明可以一次性计算出完整长图的大小,并截取多屏幕长图。不需要用户不断滚动屏幕,获取需要显示的内容后,才能实现截图,方便用户,处理快捷。
附图说明
图1是一种移动终端屏幕截图方法的实施流程图
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710587330.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于化学实验台的工具放置盒
- 下一篇:一种化学实验室排污处理设备