位图管理、图片下载缓存、管理图片内存(一) 高效展示图片系列概述
博客专区 > kim366 的博客 > 博客详情
位图管理、图片下载缓存、管理图片内存(一) 高效展示图片系列概述
kim366 发表于2年前
位图管理、图片下载缓存、管理图片内存(一) 高效展示图片系列概述
  • 发表于 2年前
  • 阅读 5
  • 收藏 0
  • 点赞 2
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

        无意间发现,官方文档中居然有一组完整的实例,详细介绍了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

        

        

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 129
码字总数 0
×
kim366
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: