我使用displayImage()
的适配器类,这台图像(从URL)列表中的项目UniversalImageLoader库的方法。 我想,如果我在我的列表视图重置适配器,图像不应该重新加载如果网址已经同以前的URL。
Answer 1:
目前已经张贴在的问题第二节解决Universal Image Loader
。
解决方案1:
您可以使用自定义显示器:
new FadeInBitmapDisplayer(300) {
@Override
public Bitmap display(Bitmap bitmap, ImageView imageView, LoadedFrom loadedFrom) {
if (loadedFrom != LoadedFrom.MEMORY_CACHE) {
return super.display(bitmap, imageView, loadedFrom);
} else {
imageView.setImageBitmap(bitmap);
return bitmap;
}
}
}
解决方案2:
BitmapDisplayer displayer = new FadeInBitmapDisplayer(500) {
@Override
public Bitmap display(Bitmap bitmap, ImageView imageView,
LoadedFrom loadedFrom) {
if (loadedFrom != LoadedFrom.MEMORY_CACHE) {
return super.display(bitmap, imageView, loadedFrom);
} else {
imageView.setImageBitmap(bitmap);
return bitmap;
}
}
};
DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true).resetViewBeforeLoading(true)
.showImageForEmptyUri(R.drawable.thumbnail_no_image)
.showImageOnFail(R.drawable.thumbnail_no_image)
.displayer(displayer).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context).defaultDisplayImageOptions(options)
.memoryCacheSize(2 * 1024 * 1024).build();
sLoader.init(config);
Answer 2:
我面临同样的problema与解决方案去如下
里面声明你的ImageView尝试以下行作为一线后getview方法
myImageView.setImageResource(R.drawable.adefaultimage);
这首先表现在imagview一个defaultimage并避免影像重复,直到ImageLoader的加载实一个
Answer 3:
为达到这个 :
在列表中的适配器使用Android LRU缓存。 第一次看它很复杂,但它有更多的典型应用该类超支。
采用LRU缓存的图像存储在缓存中,当它显示再从缓存中是否会存在那么就不会降负荷,它会从存储高速缓存使用。 你也可以给高速缓存大小为您的应用程序,并清除它。
下面有一些链接:
教程:
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
http://developer.android.com/reference/android/util/LruCache.html
例如:
http://android-er.blogspot.in/2012/07/caching-bitmaps-with-lrucache.html
http://android-er.blogspot.in/2012/07/apply-lrucache-on-gridview.html
Answer 4:
我尝试了上述解决方案,但没有找到有用的,最后我通过保存从URL影像设备(如位图)解决了我的问题,然后在列表视图中获得来自那里。
文章来源: How to prevent reloading of images in listview with custom adapter when refresh listview