這裏看看下面的代碼,回收位圖中環
for (String path : all_path) {
bmp = BitmapFactory.decodeFile(path);
bitmapList.add(bmp);
}
這個代碼是推動我瘋了。由於在每次迭代中調用BitmapFactory.decodeFile(路徑)並將結果驅動到內存中,結果發生OutOfMemory異常。我試圖在解碼新位圖之前在循環中使用recycle()舊位圖,但這意味着沒有意義。我搜索了關於在循環中使用位圖的答案,但未能找到答案。我該怎麼辦?任何人請幫助。
你的要求。「但是,你正在使用相同的參考變量BMP那麼在每次迭代中,他們得到更換所有位圖」很奇怪。函數'decodeFile'每次循環都會返回一個新的對象。 List對象保留對每個位圖的分隔符引用。 –
@JaromírAdamec我只是想說,如果OP要在循環中處理位圖,然後轉到下一個位圖。那麼就不會有問題。由於引用變量將指向下一個位圖對象,並且較早的變量符合GC的條件。但是,由於OP將所有位圖添加到列表中,所以它是問題的原因。 – gprathour