首页 > 系统服务 > 详细

通过view.getDrawableCache实现截屏功能

时间:2015-04-09 23:29:29      阅读:1075      评论:0      收藏:0      [点我收藏+]

最近公司要做一些需要截屏的APP,职场菜鸟什么都不会,于是就在网上找了些资料。东拼西凑的大致了解了一下,其实还是很简单的,但是尝试的过程中遇到了一些些小问题,于是就想到要不要记录下来,于是就有了这篇文章。技术小白,大神请无视。

就如网上到处都能搜到的view.getDrawableCache()的用法一样,在调用view.getDrawableCache()之前需要调用view.setDrawingCacheEnabled(true)的方法,设置为true之后返回的bitmap就不会是null,不然这里会返回null,在调用完view.getDrawableCache()方法之后再调用view.setDrawingCacheEnabled(false)的方法,设置为false之后系统会清空缓存中bitmap,也就是说,在你使用完返回的bitmap对象之前不要把它设置为false,否则会出现你操作的bitmap被recycle的错误。

那么问题来了,既然调用了view.setDrawingCacheEnabled(false)的方法后,bitmap对象会被清空回收,那么是不是不要调用就可以避免了呢?当然不行,如果不调用,那么后面很有可能出现OOM的问题,要解决OOM就麻烦了。所以操作完之后,还是调用一下view.setDrawingCacheEnabled(false)方法比较好。

如果想要对整个Acitivity进行截屏,那么首先要获取到Activity对应的View,因为getDrawableCache()这个方法是View的,不是Activity的。所以首先调用activity.getWindow().getCacheView();这样就能获取到Activity所对应的View对象了,于是就可以实现对Activity的截屏功能了。

都是些肤浅的东西,希望以后的东西越来越深奥,嘿嘿。

 

通过view.getDrawableCache实现截屏功能

原文:http://www.cnblogs.com/kinghhh/p/4412331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!