您的位置:首页 > 其它

ListView使用自定义框架mylibrary的基本理解

2016-11-01 00:08 344 查看

简介:

ListView 适配器adapter,中图片加载用到了自己写的框架mylibrary

该框架主要实现了:

图片的加载(需要参数ImageView和url地址)

①从缓存中通过url地址获取bitmap:

   该缓存类RamCache是懒汉式单例设计模式写的,优化了同步锁,预留有方法get和set

②如果缓存中没有该bitmap则开启下载线程

   该线程根据不同的返回结果,发送不同的message,交给该方法中维护的Handler,进而返回不同结果

③在下载之前,通过url从sd卡中获取bitmap

   磁盘缓存类DiskCache在ImageLoader初始化就进行了初始化,使用了md5验证数据完整性

④如果没有需要二次采样,然后下载

   ImageUtil类二次采样

⑤将图片保存到RamCache 和 DiskCache中

   发送消息到handler进行ImageView的更新操作

为了防止图片因为线程的耗时机制出现错乱,在缓存开始前,url不为空时,将url作为标记设置到ImageView去

通知handler处理时,如果getTag()不为空,并且getTag为该url才会进行处理

为了防止convertView复用时里面的图片控件卡顿,等一会在变到正确的位置,需要在开启子线程加载图片之前将控件设置为默认本地图片

// 恢复默认图片
container.setImageResource(defaultResId);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: