2012-12-18 39 views
0

我從一個MySQL數據庫中將大約200張圖像加載到我的android應用程序中。 當我嘗試將它們全部存儲在Bitmaps的Bitmap和ArrayLists中時,我很快就會發現內存不足異常。在Android中處理大量圖像

我想知道存儲這些圖像的最佳方式是什麼。我可以將它們全部保存在SD卡上,並且只保存我的應用程序中的路徑。

但我也需要始終在ViewPager的頁面上顯示這些圖像(每頁顯示大約8個圖像)。如果我在ViewPager中填充了來自資源的圖像,則Android和ViewPager會自行管理內存問題(當內存不足時會從內存中刪除未顯示的圖像,並在回滾到內存時加載它們)

如何管理存儲如此多的圖像而不會耗盡內存?

回答

1

由於有限的內存可用,您將無法直接引用每個圖像,否則就像您說會耗盡內存。只要存在對象的引用,這些圖像就會佔用內存中的空間。要釋放這些內存,您需要解除引用這些BitMaps和或清除ArrayList,這將允許垃圾收集器釋放未使用的內存。理想情況下,您只需要參考您可以看到的圖像或您將在下面看到的圖像。

您可以查看每個頁面視圖的8個圖像,或者查看周圍頁面視圖的圖像。如果您顯示的圖像比它們佔用的尺寸大得多,那麼您可能需要即時調整這些圖像的大小,並且只將它們存儲爲它們出現的大小,這也應該有助於減少圖像的內存佔用。