2016-03-13 70 views
-2

我有它加載從我的在線SQL數據庫的大量圖像,並將其顯示給用戶的Android應用程序。我目前正在處理這一問題的方法是我加載初始10個圖像時,用戶按下按鈕,然後我開始顯示這10張圖片給他,並在後臺運行TimerTask其執行每2000ms並加載下一個10張圖像,直到所有圖片已被加載。這裏的問題是,即使我打電話timer.cancel()當用戶離開幻燈片時,計時器仍然不必根據日誌(我想日誌被延遲了一下,由於圖像被下載)加載一些圖像。另外,在加載圖像時,我無法執行任何其他HTTP請求。我的目標是提供一個用戶體驗的,他不必等待太久,開始觀看照片(下載所有的人一下子是不可能的),但我也不想在後臺下載到干涉用他的應用程序的任何方式。我的目標是實現像Snapchat提供的故事一樣的東西,其中幾個圖像預加載允許用戶開始查看它們,並且我假設其餘的都在後臺加載。實現這種目標的最佳方式是什麼?圖像加載安卓

+0

閱讀[本答案](http://stackoverflow.com/questions/35906297/android-programming-working-with-lots-of-images/35906466#35906466)..hope它會幫助 – ELITE

+0

也檢查[這個答案太(http://stackoverflow.com/questions/35476073/android-code-to-fetch-image-from-server-and-display-it-in-imageview/35477006#35477006)..here我提到從服務器加載圖像的詳細步驟。 – ELITE

回答

1

你的問題是因爲即使你打電話給timer.cancel()你只是取消定時器,但下載圖像任務已經執行,這意味着下載圖像的網絡請求已經發送,所以你不能取消這個。

ImageLoading是Android開發中的一個重要且艱鉅的主題,它調用許多密鑰,如圖像解碼和編碼,網絡請求,內存緩存,磁盤緩存等等,它會消耗大量時間來解決它。 ,也有做一些優秀的庫,例如畢加索通用 - 圖片 - 裝載機,你可以直接使用它們,你會得到你want.If想知道它們的實現什麼,只是看看他們的來源代碼,您將從中受益。