2013-11-21 55 views
1

我們有帶圖像的ListView。從我們的服務器下載圖像。然後保存到存儲,並把緩存是這樣的:在ListView中更新ImageView的最佳行爲

private static final Hashtable<String, Bitmap> cachePhoto = new Hashtable<String, Bitmap>(); 

所以在getView後第一次加入我們從緩存中獲取圖像,並將其設置的ImageView:

i.setImageBitmap(photo); 

而現在我們有一些滯後,同時滾動在許多設備上。但是想要平滑滾動。我怎樣才能避免滯後?

+0

沒有在你的問題足夠的信息來找出是什麼原因造成的性能滯後。也許你應該發佈你的'getView()'和你更新緩存的地方等。**建議**:你應該使用volly(和它的'NetworkImageView'),沒有必要重新發明輪子:http:// stackoverflow.com/q/17571759/827110 –

+0

在getView我調用我的ViewHolder並嘗試設置圖像。 1)嘗試從SD卡(和緩存)中獲取圖像。 2)如果沒有img,那麼在AsyncTask中從網上下載。 因此,在創建AsyncTask時,getView時滯... – Suvitruf

+0

創建'AsyncTask'時你怎麼知道它滯後?你認爲或者你已經進行了測試,發現這是瓶頸?無論哪種情況,除非您發佈代碼,否則我認爲很難解決您的問題。由於沒有一般的解決方案..你必須做一些導致滯後的事情。 –

回答