码迷,mamicode.com
首页 > 系统相关 > 详细

通过view.getDrawableCache实现截屏功能

时间:2015-04-09 23:30:01      阅读:181      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!