2013-01-21 122 views
3

如果圖像已被緩存,我不想下載圖像。我正在使用NOSTRA的ImageLoader庫。請告訴我是否有任何方法可以做到這一點。以下是該代碼: -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(); 

        } 
       }); 
+1

顯示配置 – NOSTRA

回答

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

謝謝它解決了這個問題。 –

相關問題