2011-05-24 60 views
0

這是最好的方式還是其他人?SimpleCursorAdaptor ListView使用超過400行的TextView和ImageView內存問題

我延長SimpleCursorAdapter並覆蓋getView(INT位置,查看 convertView,一個ViewGroup父)

我找回我的光標,誇大我的ImageView和TextView的,拉的數據從光標 和填充的TextView和ImageView的 在ImageView上,我將圖像作爲Blob存儲在數據庫中。

當我檢索我的斑點我拉出來作爲字節[],並將其轉換爲低於

位圖:

BMP位= BitmapFactory.decodeByteArray(IMG,0,img.length) ;

然後我把我的位圖在我的ImageView爲:

iv.setImageBitmap(BMP);

現在我可以向下滾動罰款沒有問題,但是當我開始滾動回 該名單,我得到大內存問題和零星的跳躍(自 垃圾收集趕上)。

任何人都可以告訴我什麼最好的方法來完成這項任務將 是什麼?有沒有辦法回收不在視圖中的位圖,並在接近它們時拉動它們並再次顯示?

我已經搜索了幾個月,並嘗試了各種技術,但我在 損失找到一個將允許我完成這項任務。

預先感謝您。

回答

0

我結束了將圖像移動到外部存儲並執行相同的延遲加載,因爲我在之前的數據庫嘗試中嘗試過這種方法。不知何故,從數據庫嘗試這種做法是不允許圖像被垃圾收集。

0

做你觀看這部影片:http://www.youtube.com/watch?v=N6YdwzAvwOA

和閱讀此線程:how to clear the cached images in Android?

基本上你要回收任何圖片當前不可見。

+0

我看過視頻並閱讀了主題,但問題仍然存在,但是感謝您提供這些內容非常豐富的內容。 我仍然相信有一些與圖像的數量,每個圖像是不同的,並從數據庫中拉出來,然後從一個字節[]創建一個位圖並在ImageView上設置,但它似乎並沒有收集垃圾,他們的是沒有辦法回收他們沒有ListView拋出一個錯誤。 – gcstang 2011-05-26 12:37:43

相關問題