2010-02-16 65 views
0

我的SD卡中有多個圖像存在於不同的文件夾中。我想顯示縮略圖列表。所以我所做的是在呈現列表中的任何一行時,我在輸入流中讀取文件,獲取字節數組,解碼它以獲取位圖並將其設置在imageview中。在列表視圖中顯示圖像的縮略圖(出現在SD卡中的不同位置)

到目前爲止這麼好。但是當我滾動列表時,這個列表會在抽屜裏滾動。我相信這是因爲從字節數組解碼位圖需要一些時間。我想知道的是,是否有任何優化措施可以改善性能,或者更好的方法是實現我想要的效果嗎?

+0

你是否將圖像緩存在WeakReference之後的某個地方? – 2010-02-16 04:41:04

+0

沒有。緩存會導致堆大小的增加,並且當有100個圖像要顯示時,我的應用程序無法負擔得起 – pankajagarwal 2010-02-16 06:31:34

+1

如果您使用弱引用集合進行緩存,它將在需要時處置,而不是問題。檢查貨架項目,有一個很好的例子,一個弱引用和一個fastbitmapdrawable http://code.google.com/p/shelves/source/browse/trunk/Shelves/src/org/curiouscreature/android/shelves/ util/ImageUtilities.java – 2010-02-16 16:27:17

回答

0

在我看來,更好的方法是將它們添加到資源文件夾中作爲可繪製的,如果可以的話。然後你可以更快地訪問它們作爲一個可拖動的系統資源。

ImageView iv; 
iv.setBackgroundDrawable(getResources().getDrawable(R.drawable..)); 
+0

我無法將圖像放在資源文件夾中,因爲圖像數量會不時變化。此外,這將傾向於顯着增加應用程序的大小 – pankajagarwal 2010-02-16 06:33:59

相關問題