【问题标题】:Android: Universal Image Loader - Add new image to cacheAndroid:通用图像加载器 - 将新图像添加到缓存
【发布时间】:2016-12-15 03:41:05
【问题描述】:

我已成功将 Universal Imageloader 集成到我的 Gallery 应用程序中,以显示手机存储中的图像

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

可能是由于这个错误

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

我认为将新图像的详细信息添加到缓存中可以解决问题。但不知道如何。请帮忙

代码:Activity 扩展应用程序

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);

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

【问题讨论】:

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


    【解决方案1】:

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

    加载中

                    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
                        }
                    });
    

    通用图像加载器接受的 URI 方案

    "file:///mnt/sdcard/image.png" // from SD card
    "file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail)
    "content://media/external/images/media/13" // from content provider
    "content://media/external/video/media/13" // from content provider (video thumbnail)
    "assets://image.png" // from assets
    "drawable://" + R.drawable.img // from drawables (non-9patch images)
    

    【讨论】:

    • 先生,我需要将新处理的图像添加到已经启动的图像加载器中.. 可以吗
    • 您的意思是您从相机中获取了一张照片,并且您还希望它缓存在通用图像加载器中,对吗?
    • 是的...我将新图像保存到应用程序文件夹中..需要添加到缓存中
    【解决方案2】:

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

    【讨论】:

    • 谢谢..它只启动了一次..我需要将新处理/保存的图像添加到已经启动的图像加载器中......这可能吗
    • 添加图片到imageloader是什么意思?如果您这样配置,该库会自动缓存加载的图像。
    【解决方案3】:

    我发现这将使用函数 loadImageSync(); 解决问题

    ImageLoader.getInstance().loadImageSync(filepath);
    

    【讨论】:

      猜你喜欢
      • 2014-01-14
      • 2014-10-14
      • 2015-06-20
      • 2015-04-02
      • 2013-05-02
      • 2023-03-18
      • 2017-04-07
      • 1970-01-01
      • 2016-02-29
      相关资源
      最近更新 更多