如何防止自定义适配器时刷新列表视图列表视图中图像的重装(How to prevent reloadi

2019-10-23 00:16发布

我使用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缓存的图像存储在缓存中,当它显示再从缓存中是否会存在那么就不会降负荷,它会从存储高速缓存使用。 你也可以给高速缓存大小为您的应用程序,并清除它。

下面有一些链接:

教程:

  1. http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

  2. http://developer.android.com/reference/android/util/LruCache.html

例如:

  1. http://android-er.blogspot.in/2012/07/caching-bitmaps-with-lrucache.html

  2. 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