您的位置:首页 > 移动开发 > Android开发

Android中从ImageView中取出图片bitmap注意事项

2016-03-26 15:28 465 查看
最近在工作中遇到一个需求,是在做视频播放器时,要求中间的播放按钮是毛玻璃效果。这就要在这个图片的相应位置取出bitmap对象,然后进行模糊处理再设置回去。这张图片是从服务端异步获取的,所以在获取图片完成时会设置完整个控件的大图,然后我再从空间中取出我需要的那一小块bitmap.
bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
但是这样取出来的bitmap对象是null。
最后查阅资料,发现,View在绘制的时候可以对其进行视图的缓存,但是大部分时候我们都不需要这么一份缓存,而且缓存还会占空间。
所以我们想要获取到这部分视图,首先要先调用
imageView.setDrawingCacheEnabled(true);
开启这个功能,然后再取出视图缓存。
需要注意的是,再取出Cache之后,一定要调用
imageView.setDrawingCacheEnabled(false);
或者
imageView.destroyDrawingCache();
对缓存进行清理。
否则图片的视图永远是原来的样子。
imageView.setDrawingCacheEnabled(true);bitmap = Bitmap.createBitmap(imageView.getDrawingCache());imageView.setDrawingCacheEnabled(false);
取到bitmap后根据我想要的位置取出该做模糊处理的那部分bitmap做相关操作。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: