android清理 mabimageloader 缓存,永远不会oom的瀑布流

该博客介绍了AndBase中实现的瀑布流布局,特别关注了大图处理和内存管理。通过设置最大宽度和高度,确保图片在加载时不会导致Bitmap过大无法上传到纹理,对于超过4096x4096的图片采取缩放加裁剪的方式,防止OOM。同时,对不显示的Bitmap进行及时释放,以提高稳定性。内容涉及图片下载、内存控制和资源释放的关键点。
摘要由CSDN通过智能技术生成

andbase中的demo中实现了一个瀑布流,采用3列的结构,展现了一个合理释放资源的方案,在下载图片时不管你的图片多大,在andbase中都将按照合理的方式显示出来,对于超过4096x4096的图片采用了缩放加裁剪的策略,使其读入到内存不会Bitmap

too large to be uploaded into a

texture,同时在对不显示的Bitmap进行释放,就可以达到效果,可能要牺牲一点效率,但稳定性会大幅度提高。

图中最右边的图其实是很长很长。

对于OOM需要检查一下几个要点:

(1)单张图片超过4096x4096的处理方案,因为这么大的图UI是无法显然显示的。

(2)总内存的控制,合理安排释放不用的资源。

//图片的下载

AbImageLoader mAbImageLoader =

AbImageLoader.newInstance(this);

mAbImageLoader.setLoadingImage(R.drawable.image_loading);

mAbImageLoader.setErrorImage(R.drawable.image_error);

mAbImageLoader.setEmptyImage(R.drawable.image_empty);

//原图片的下载

mAbImageLoader.setMaxWidth(0);

mAbImageLoader.setMaxHeight(0);

mAbImageLoader.display(scaleView,imageUrl);

//缩放图片的下载(保持宽高比,计算缩放比例,使一个方向缩放后,另一方向不小与显示的大小的最合适比例)

mAbImageLoader.setMaxWidth(150);

mAbImageLoader.setMaxHeight(150);

mAbImageLoader.display(scaleView2,imageUrl2);

//放大图片的下载

mAbImageLoader.setMaxWidth(180);

mAbImageLoader.setMaxHeight(180);

mAbImageLoader.display(scaleView3,imageUrl3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值