专栏名称: 开发者全社区
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
stormzhang  ·  维权成功! ·  3 天前  
鸿洋  ·  Jetpack ... ·  4 天前  
stormzhang  ·  打工人维权的正确姿势 ·  5 天前  
stormzhang  ·  高少喊我学英语了 ·  6 天前  
鸿洋  ·  面试官:你对插件化有什么了解? ·  6 天前  
51好读  ›  专栏  ›  开发者全社区

Android各种截屏姿势全总结

开发者全社区  · 公众号  · android  · 2017-04-27 07:28

正文

Android截屏

Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途

        在截屏功能中,有时需要截取全屏的内容,有时需要截取超过一屏的内容(比如:Listview,Scrollview,RecyclerView)。下面介绍各种场景获取Bitmap的方法

普通截屏的实现

    获取当前Window的DrawingCache的方式,即decorView的DrawingCache

        获取当前View的DrawingCache


Scrollview截屏


        三个截屏中,ScrollView最简单,因为ScrollView只有一个childView,虽然没有全部显示在界面上,但是已经全部渲染绘制,因此可以直接 调用scrollView.draw(canvas)来完成截图


listview截屏


        而ListView就是会回收与重用Item,并且只会绘制在屏幕上显示的ItemView,根据stackoverflow上大神的建议,采用一个List来存储Item的视图,这种方案依然不够好,当Item足够多的时候,可能会发生oom。

RecyclerView截屏


        我们都知道,在新的Android版本中,已经可以用RecyclerView来代替使用ListView的场景,相比较ListView,RecyclerView对Item View的缓存支持的更好。可以采用和ListView相同的方案,这里也是在stackoverflow上看到的方案。

本文参考http://www.cnblogs.com/BoBoMEe/p/4556917.html,并结合自己实际项目操作完成。原文:http://www.jianshu.com/p/980a75a31f2f

Android更多截屏内容请点击“阅读原文”查看

看完本文有收获?请分享给更多人

Java和Android架构

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。

公众号:JANiubility

推荐文章
stormzhang  ·  维权成功!
3 天前
stormzhang  ·  打工人维权的正确姿势
5 天前
stormzhang  ·  高少喊我学英语了
6 天前
利维坦  ·  那些“不可译”的微妙情绪表达
7 年前
重建自我课堂  ·  欢乐颂2:小包总这样的男人,才叫撩妹
7 年前