3

すでにキャッシュされている画像をダウンロードしたくありません。NOSTRAのImageLoaderライブラリを使用しています。それを行う方法があるかどうか教えてください。コードは次のとおりです。-

    DisplayImageOptions options = new DisplayImageOptions.Builder()
                        .showStubImage(R.drawable.ic_stub)
                        .showImageForEmptyUri(R.drawable.ic_sample)
                        .resetViewBeforeLoading()
                        .cacheInMemory()
                        .cacheOnDisc()
                        .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
                        .bitmapConfig(Bitmap.Config.ARGB_8888)
                        .build();
                imageLoader.displayImage(url2.toString()
                                          ,thumbnail,options, new                                 
                    ImageLoadingListener() {
                    @Override
                    public void onLoadingStarted() {

                       // progressBar.setVisibility(grid.VISIBLE);
                        //  grid.notify();
                    }

                    @Override
                    public void onLoadingFailed(FailReason failReason) {

                       //progressBar.setVisibility(grid.GONE);
                        //  grid.notify();

                    }

                    @Override
                    public void onLoadingComplete(Bitmap bitmap) {


                      //  progressBar.setVisibility(grid.GONE);
                        // grid.notify();
                    }

                    @Override
                    public void onLoadingCancelled() {

                       //  progressBar.setVisibility(grid.GONE);
                        //grid.notify();

                    }
                });
4

1 に答える 1

6

でデフォルトのキャッシュオプションを定義していませんDisplayImageOption

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
    .threadPoolSize(5)
    .threadPriority(Thread.MIN_PRIORITY + 3)
    .denyCacheImageMultipleSizesInMemory()
    // 1MB=1048576 
    .memoryCacheSize(1048576 * 5)
    .discCache(new UnlimitedDiscCache(cacheDir))
    .build();

ここでcacheDirは、ディレクトリがオンになっている可能性がありますSD card(権限 "android.permission.WRITE_EXTERNAL_STORAGE"が必要です)またはapplication's cacheディレクトリです。

cacheDirectory私は自分のアプリケーションで提供しました。

File cacheDir = new File(this.getCacheDir(), "name of directory");
    if (!cacheDir.exists())
        cacheDir.mkdir();

ImageLoader次に、イメージをダウンロードする前に、次のコードで構成を提供します。

imageLoader.init(config);
于 2013-01-21T12:44:09.513 に答える