ImageLoader的加载机制
( ImageLoader工程详见:)
1. 先下载到sd卡,加载到内存,显示
2.内存中存储,形式
String memoryCacheKey = MemoryCacheUtils.generateKey(uri, targetSize);
所以不同大小和url的图片视为不同的Bitmap对象
3.在加载图片时,先获取ImageView的大小,获取大小为0,则使用Configuration中的最大大小,详见源码:ImageLoader-》displayImage()中
ImageSize targetSize = ImageSizeUtils.defineTargetSizeForView(imageAware, configuration.getMaxImageSize())
个人感觉,对于app中的较大图片,最好给定初始大小或者通过计算得到像素值,这样避免加载的图片较大,加速加载过程
4.当图片加载总大小大于一定值,将会移除列表,但是图片内存不一定会立即释放
5.由于Imageloader持有的图片大小+代码布局中或通过自己加载的方式加载的图片 总大小大于一定值会引起内存溢出或者图片加载失败,建议使用一套
图片加载机制。
6.布局中的图片最好代码中加载,不要直接写在布局中,界面销毁时最好解除关联引用,便于内存释放
阅读(4517) | 评论(0) | 转发(1) |