在适配器Adapter中设置bitmap,极大可能会引起一些异常。
先简略表述下我的异常情况:
我是在GridView结合ViewPager一起用的,选择一些默认图片,然后选择图片,传递到GridView的Adapter中去的。然后根据拖动缩放ViewPager中Fragment的图片,然后获得其中的缩略图,进行Adapter中的设置。
问题来了,选择图片了,再从新选择,就容易造成Adapter中的Bitmap被recycled了。出现以下这样的问题
解决的办法是: 我是用Glide来解决的,不是使用ImageView.setImageBitmap(bp)来解决的,因为Glide中有缓存机制,故如果要自己写的话,人需要用到缓存的机制,避免被回收利用,而引用的BitmapDrawable仍引用着,那样就容易造成上述问题。在此谨记下!