位图管理、图片下载缓存、管理图片内存(一) 高效展示图片系列概述

        无意间发现,官方文档中居然有一组完整的实例,详细介绍了android对于图片加载和缓存的解决方法。之前在项目中也用到了图片的批量下载,而且也是像这里的实例一样在GridView或ListView中展示,处理过程也是通过双缓存的方式提高效率,确保应用的UI流畅和内存占用率。看完之后才感觉之前使用的方式还有很多可以改进的地方,同时也为这么优秀的指导文档鲜有人知感到惋惜。所以在此翻译学习,加以巩固。根据文档介绍流程,这里作为一个系列。

        概述

        学习如何通过一种能够保持UI组件高效响应并避免内存溢出的方式,处理并使用位图对象。如果开发者不注意,位图可能会很快消耗掉应用可获得的预分配内存,从而因为内存溢出而导致应用崩溃。下面是一些导致位图下载问题复杂而棘手的原因分析:

        1. 移动设备系统资源有限。android设备中单个应用可能获得只有16M的内存。Android Compatibility Definition Document (CDD), Section 3.7. Virtual Machine Compatibility文档中给出了在不同屏幕尺寸和像素下,应用可以获得的最小内存。应用应该优化到在此内存限度下进行操作。不过许多设备可能设置了更高的单个应用内存占用限度。

        2. 位图对象会占用很大的内存,尤其是对于效果逼真的图片。比如,Galaxy Nexus下的相机可以拍出2592*1936像素(5百万)的照片。如果一个位图配置使用ARGB_888(android2.3之前默认的)格式,那么下载这样一张图片会占用19M内存(2592*1936*4字节),在某些设备上很快就会达到单个应用的内存限制。

        3. android应用的UI通常会同时请求下载多张位图。比如说ListView,和GridView组件或ViewPager, 通常会存在潜在的图片下载,当用户手指滑动后在屏幕上同时展示多张图片。

        先推荐一种很不错的方式:

        http://www.xycoding.com/articles/2014/07/29/android-async-images-download/

        http://download.csdn.net/download/q541959443/7692557

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值