Android:通用图片加载器 - 添加新图片以缓存

时间:2016-08-09 07:43:16

标签: android image android-gallery universal-image-loader image-caching

我在Gallery App中成功集成Universal Imageloader以显示手机存储中的图像

但是,存储在应用程序指定文件夹中的新图像(从相机/处理过的图像中捕获)不会出现在图库中。甚至应用程序重新启动。

  

可能是由于此错误

W/ImageLoader: Try to initialize ImageLoader which had already been initialized before. To re-init ImageLoader with new configuration call ImageLoader.destroy() at first.

我认为将新图像的细节添加到缓存将解决问题。但不知道怎么做。请帮忙

  

代码:活动扩展应用程序

DisplayImageOptions defaultDisplayImageOptions = new DisplayImageOptions.Builder() //
        .considerExifParams(true)
        .resetViewBeforeLoading(true)
        .showImageOnLoading(R.drawable.nophotos)
        .showImageOnFail(R.drawable.nophotos)
        .delayBeforeLoading(0)
        .build(); //

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
        getApplicationContext())
        .defaultDisplayImageOptions(defaultDisplayImageOptions)
        .memoryCacheExtraOptions(480, 800).threadPoolSize(5)
        .build();


ImageLoader.getInstance().init(config);
  

加载所有相册

   PhoneMediaControl mediaControl = new PhoneMediaControl();
    mediaControl.setLoadalbumphoto(new loadAlbumPhoto() {

        @Override
        public void loadPhoto(ArrayList<AlbumEntry> albumsSorted_) {
            albumsSorted = new ArrayList<PhoneMediaControl.AlbumEntry>(albumsSorted_);
            if (mView != null && mView.getEmptyView() == null) {
                mView.setEmptyView(null);
            }
            if (listAdapter != null) {
                listAdapter.notifyDataSetChanged();
            }
        }
    });
    mediaControl.loadGalleryPhotosAlbums(mContext, 0);
  

有没有办法将新处理的图像添加到缓存或已启动的图像加载器

3 个答案:

答案 0 :(得分:2)

您只需使用通用图像加载器加载图像,它就会自动缓存它。

<强>载入

file_import

UNIVERSAL IMAGE LOADER接受URI方案

                ImageLoader imageLoader = ImageLoader.getInstance();
                Uri uri = Uri.fromFile(new File("/DCIM/Camera/1470634175974.jpg"));
                imageLoader.loadImage(uri.toString(), new SimpleImageLoadingListener() {

                    @Override
                    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                        // Do whatever you want with Bitmap
                    }
                });

答案 1 :(得分:0)

仅在UniversalImageLoader课程的onCreate()内,而不是在每个Application内或其他地方内,初始化您的Activity个实例。

答案 2 :(得分:0)

我发现这将使用函数loadImageSync();

重新解决问题
ImageLoader.getInstance().loadImageSync(filepath);