Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android通用图像加载器缓存(按id)_Android_Universal Image Loader - Fatal编程技术网

Android通用图像加载器缓存(按id)

Android通用图像加载器缓存(按id),android,universal-image-loader,Android,Universal Image Loader,我正在使用NOSTRA的库,并且启用了内存缓存。位图似乎是使用displayImage()方法中设置的URI作为键进行缓存的。作为一种解决方法,我创建了另一个HashMap,其中包含图像的URI,并将与之关联的唯一id作为键。原因是id值也用于加载其他位置的数据,因此该值对于每个图像都是唯一的 那么,有没有办法将缓存位图的键更改为URI以外的内容?位图通过键模式[imageUrl]\uu[width]x[height]缓存在内存缓存中。在当前的lib版本(1.7.0)中,无法更改此模式。@NOS

我正在使用NOSTRA的库,并且启用了内存缓存。位图似乎是使用displayImage()方法中设置的URI作为键进行缓存的。作为一种解决方法,我创建了另一个HashMap,其中包含图像的URI,并将与之关联的唯一id作为键。原因是id值也用于加载其他位置的数据,因此该值对于每个图像都是唯一的


那么,有没有办法将缓存位图的键更改为URI以外的内容?

位图通过键模式[imageUrl]\uu[width]x[height]缓存在内存缓存中。在当前的lib版本(1.7.0)中,无法更改此模式。

@NOSTRA: 我们可以这样做吗。
在生成cachekey时,我们不需要传递[imageUrl]\u[width]x[height],而只需传递缓存密钥的唯一ID即可。

谢谢。我想最好的方法是禁用缓存(似乎内存中的缓存无论如何都不起作用),然后加载位图。然后在onLoadingComplete()中,我可以同时缓存和填充ImageView。这是什么意思-“似乎内存中的缓存无论如何都不起作用”?如果我从显示选项中删除.cacheOnDisc()并保留在.cacheInMemory()中,所有图像的加载速度都会变慢,这让我相信他们仍然被从URL中删除。但是如果我重新添加.cacheOnDisc(),它们会再次快速加载,因为不能同时在内存中缓存所有图像。一些图像必须删除,然后必须再次下载。计划在下一版本中实施。我有你的库。因此,我可以更改缓存密钥生成的代码。并使用该键进行映射。@Dinesh.P您能帮助我如何进行映射吗?