我有一個場景,我認爲這在Android應用程序中很常見。我知道部分解決問題的嘗試已經做出,但直到現在我還沒有偶然發現完全實施。我打算嘗試實施此類組件,並在之後開放源代碼,但我的設計需要您的幫助。設計列表視圖延遲加載圖像組件
所以基本上我的情況如下:我有列表視圖顯示圖像加載從網絡和文本每行。我想懶惰地加載圖像,爲每個圖像放置默認值,並僅在下載圖像時用真實圖像替換。我也想保持圖像緩存,避免在短時間內多次下載圖像。
到目前爲止我已經發現了幾個實現,部分地工作,包括:
- 類似組分與幾種公知的問題 概念
- Jeremy Wadsack's refinement,這是Tom van Zummeren's implementation或多或少工作
- Lazy drawables源鍛造項目。
不過我還有一個要求,這使得我的任務複雜一點:我允許我的應用程序的用戶子公司自己與一些圖像。每當用戶導航到主屏幕時,我想加載與用戶關聯的新圖像。從它應該能夠看到他的圖像,甚至在它們全部被下載之前,在這種情況下,應該可見默認佔位符(注意跨屏轉換)。這種使用情況是:
- 的應用列表用戶的YouTube視頻
- 爲Facebook的應用程序 - 考慮朋友的圖像
- 服務消息的應用程序,支持用戶的收藏夾等
注意我想要開始在主屏幕上提取與用戶相關的新數據以提供更好的用戶體驗。我會永久保存本地存儲的用戶相關數據。
問題
所以我的基本問題是什麼方法,我應該使用的圖片下載的情況?我知道Android手冊說Service
應該只在我想要執行任務時才使用,即使應用程序沒有運行。另一方面,我將在主屏幕上開始圖像下載,並在用戶導航到新屏幕(Activity
)時將用戶界面元素鏈接到用戶界面元素 - 用戶相關列表視圖,但我不知道如何使用AsyncTask
(不是說我對Service
有一個非常確切的想法)。
任何建議將不勝感激,包括鏈接。
非常感謝您的回覆。幾天後,我將有時間驗證答案的有效性。不過,我正在投票,因爲你向我展示了一種我迄今尚未找到的解決方案。 –
它是我的榮幸,但它的偉大之處在於如果您找到解決方案,請將此答案標記爲... –
您終於被接受了。順便說一下,相關文章的演變看來,現在最相關的是相當位於列表的頂部:http://stackoverflow.com/questions/541966/how-do-i-do-a-lazy-load-of -images合列表視圖?RQ = 1 –