如题
我在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怎么生效呢。