当前位置: 代码迷 >> Android >> Universal Image Loader 怎么将图片存入缓存 怎么从缓存取出
  详细解决方案

Universal Image Loader 怎么将图片存入缓存 怎么从缓存取出

热度:590   发布时间:2016-04-27 22:50:19.0
Universal Image Loader 如何将图片存入缓存 如何从缓存取出
如题

我在APP初始化的时候下载了图片,但displayimage的时候  并没有从缓存直接加载,而是又load from netword了。

我以前的逻辑是  写了一个file类,在download bitmap 之后 存入缓存,在getview的时候  判断缓存中是否有  有就直接setimage
没有再下载,

这个逻辑改怎么用Universal Image Loader  复现。

还有 


ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
this)
.threadPoolSize(3)
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCacheSize(4 * 1024 * 1024)
.imageDownloader(
new BaseImageDownloader(this, 10 * 1000, 30 * 1000))
.writeDebugLogs().build();
DisplayImageOptions options = new DisplayImageOptions.Builder()
// .showImageOnLoading(R.drawable.ic_empty)
// 设置图片在下载期间显示的图片
// .showImageForEmptyUri(R.drawable.ic_empty)
// 设置图片Uri为空或是错误的时候显示的图片
// .showImageOnFail(R.drawable.ic_empty)
// 设置图片加载/解码过程中错误时候显示的图片
.cacheInMemory(true)
// 设置下载的图片是否缓存在内存中
.cacheOnDisk(true)
// 设置下载的图片是否缓存在SD卡中
.displayer(new FadeInBitmapDisplayer(100))
.considerExifParams(true)
.displayer(new FadeInBitmapDisplayer(100))// 图片加载好后渐入的动画时间
.displayer(new RoundedBitmapDisplayer(1)).build();

ImageLoader.getInstance().init(config);


我这样初始化,没问题吧?


项目比较赶,也没时间深入研究了,希望用过的大神指导下
------解决思路----------------------
非大神。
我是这么想的,虽然缓存了,但太大或者太多时,系统会回收,系统回收了,内存中没有,就又得重新下载。你可以看一下源码中的cache设置。
------解决思路----------------------
初始化有问题。
configuration = new ImageLoaderConfiguration.Builder(context).
                                     。。。
.defaultDisplayImageOptions(options)
                                    。。。
加上标红的这句,不然你的options怎么生效呢。
  相关解决方案