2014-10-17 69 views
0

我正在開發一個應用程序,它應該能夠預先下載數據集中使用的所有圖像,以便應用程序可以完全脫機。有沒有辦法在畢加索排隊下載的進度?

它應該下載約600張圖片的每個500KB(共約300 MB)。

爲此,我想遍歷所有網址並執行畢加索提取()方法。這將獲取所有圖像,這非常棒。

我唯一缺少的是一種方法,看看進度是所有圖像下載的。有沒有辦法看到畢加索的下載隊列的進度?這樣我可以在下載完成時通知用戶,並告知當前狀態。

我到目前爲止已經發現:

  • 我可以使用目標的圖像加載到。只有這樣才能解碼到一個Bitmap,這個Bitmap還不是必需的,而且佔用了太多的資源。
  • 我可以以某種方式讀取緩存文件夾來檢查進度。但我認爲這不是一個乾淨的方式...

回答

0

首先,你不應該預先加載所有圖像。 如果您使用畢加索或通用圖像加載程序,則它們都將緩存您的圖像。這樣你就可以確定(或幾乎)關於OutOfMemoryException。

但如果你真的想這樣做,檢查通用圖像裝載機的LoadImage(字符串URI,ImageLoadingListener監聽)所有感謝您的回覆的

https://github.com/nostra13/Android-Universal-Image-Loader

imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() { 
    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
     // Do whatever you want with Bitmap 
    } 
}); 
+0

第一。這似乎也產生了位圖,對嗎?我只是希望它只寫入磁盤,它不應該在內存中創建任何東西。 (只將字節信息從網絡傳遞到磁盤) – 2014-10-17 14:49:50

+1

是的,你是對的。該基地在底層提供位圖。所以我不知道任何圖片庫,只會做你期望的。也許你應該自己處理?創建將下載文件並保存它們的服務,然後將散列或其他鍵保存到數據庫或共享首選項。 – Jakub 2014-10-17 17:34:02

+0

是的,我也認爲這是現在唯一的選擇。謝謝你的幫助! – 2014-10-20 07:17:42

相關問題