• Android加载图片小结


    应用中用到图片加载需要解决的问题

    1. 无网络环境下图片不可用

      • 图片的本地缓存,或者默认预加载的图片
    2. 低配置机型,加载图像资源超内存(OutOfMemory, OoM)

      • 需要合理使用内存,尤其是bitmap的使用,是内存溢出的最常见地方
    3. ListView, GridView等控件

      • 初始化或者移动过程中,列表项的重复绘制导致图片重复加载多次
      • 列表快速滑动后,停止区域图像没有被快速加载

      快速滑动过程中,在getView中进行图像加载逻辑,在随后view被复用于加载另外的不同的图片 前一个加载应该立即被取消,保证新的加载应该很快被执行 * 往前或往后滑动之后,反向滑动,之前已浏览过区域,等待图片重新加载

      在逆向滑动后,之前的图像应该立刻被加载 * 快速滑动过程中,列表卡顿

      快速滑动过程中,频繁的图像的加载,创建和释放,可能导致内存回收

    4. 缓存使用, 配额管理

      • 缓存图像(Bitmap)于内存,命中缓存的图像可立刻加载,但限于zygoate虚拟机内存有限
        • 过大的内存占用,容易造成OoM
        • 占用用户过多内存,造成用户反感
      • 缓存文件于sd卡或者机身存储,配额管理
        • 应该适度使用用户机器资源
        • 应用卸载后,不应该有遗留数据
    5. 图片复用

      • 比如用户头像,120x120图像下载到本地之后,如有80x80的需求, 无需再次下载,直接复用120x120图片
    1. 图片的尺寸的适配

      • 如无特殊指定,可根据ImageView尺寸适配最合适尺寸的图
      • 大部分的图片存储服务,支持通过拼接不同url获得不同尺寸,不同质量, 不同格式(webp)的图片

      需要根据不同的尺寸需求,拼接不同的url,这样成本太高,不会有各个尺寸的图片,需要自己处理常用尺寸的图片适配不同尺寸

    2. 各图片存储拼接格式不同,此为具体的业务逻辑,应该有足够好的扩展性,支持不同的拼接方式

    其中一个解决方案:http://cube-sdk.liaohuqiu.net/

    小结转自:http://www.liaohuqiu.net/cn/index/page2/

  • 相关阅读:
    Python基础—字符串
    Python基础—函数
    2019918练手爬虫日记
    python基础—列表
    Python urllib详解
    安装TesseractOCR显示无效的路径
    Sql server 关于ID突然自增问题解决方案
    Sql server 登陆后无法找不到数据库怎么解决
    Python常用语句及流程控制
    jquery cookie操作
  • 原文地址:https://www.cnblogs.com/spring87/p/4853261.html
Copyright © 2020-2023  润新知