2013-06-20 46 views
0

我目前有一個顯示一些縮略圖圖像的gridview。我遇到的問題是,當我滾動瀏覽圖像時,我可以看到圖像在被替換時從舊到新切換。所以,我想知道如何解決這個問題。有沒有辦法加載不在屏幕上的圖像,所以當我滾動用戶不必看到圖像的變化?如何加載不在屏幕上的圖像

+0

這是listview回收它的視圖,你可能需要看看lazyloading圖片 – tyczj

+0

爲什麼你不創建位圖並在必要時繪製它們?創建位圖將圖像存入內存。 – neo

回答

1

避免這種效果的最佳方法是將圖像首先設置爲適配器的getView()方法中的null。如果圖像已經加載,您可以檢查LRU緩存。如果是,則立即設置,如果不是,則將其異步加載爲位圖。將其設置爲視圖並將其添加到LRU緩存。

+0

我使用Universal Image Loader來緩存我的圖像並檢查它們是否被緩存。如果可能,我想嘗試使用UIL。但是,我遇到了問題,我必須將位圖設置爲URI,以便UIL可以處理圖像。所以如果我按照你的建議事先緩存它,我將不會有URI傳遞到UIL中。你有看到這個嗎? – Papajohn000

+0

只有在第一次顯示圖像時,才需要預先緩存圖像。您會看到ImageView中的圖像發生變化,因爲ImageLoader將它們加載爲異步。只需在ImageView中將圖像設置爲null,即可清除它們。圖像仍然會出現延遲,但至少你不會先看到舊圖像。 – SimonSays

相關問題