回答

8

UIL可以將圖像緩存在SD卡上(在DisplayImageOptions中啓用緩存)。您可以爲緩存定義自己的文件夾(在ImageLoaderConfiguration中)。

如果你想顯示使用UIL SD卡內的影像,你應該通過網址,如: file:///mnt/sdcard/MyFolder/my_image.png

即使用file://前綴。

UPD: 如果你想保存在SD卡上的圖像:

String imageUrl = "..."; 
    File fileForImage = new File("your_path_to_save_image"); 

    InputStream sourceStream; 
    File cachedImage = ImageLoader.getInstance().getDiscCache().get(imageUrl); 
    if (cachedImage != null && cachedImage.exists()) { // if image was cached by UIL 
     sourceStream = new FileInputStream(cachedImage); 
    } else { // otherwise - download image 
     ImageDownloader downloader = new BaseImageDownloader(context); 
     sourceStream = downloader.getStream(imageUrl, null); 
    } 

    if (sourceStream != null) { 
     try { 
      OutputStream targetStream = new FileOutputStream(fileForImage); 
      try { 
       IoUtils.copyStream(sourceStream, targetStream, null); 
      } finally { 
       targetStream.close(); 
      } 
     } finally { 
      sourceStream.close(); 
     } 
    } 
+0

我用UIL下載了一個圖像並將其顯示在圖像gallery.now,我想如果用戶點擊保存圖像我保存此圖像到SD。我想知道如何從UIL得到這個文件流以保存它們如果有可能發送一個新的請求到UIL並且它發送了圖像流,我可以發送url請求agin到UIL,並且它將圖像從它的緩存中發送給我,並且我不會再次下載圖像 – user1682893

+0

我想在顯示在圖庫視圖後保存圖像 – user1682893

+0

UIL不提供這樣的功能,但你可以使用一些類,我更新了我的答案,以顯示你如何做到你 – NOSTRA

相關問題