1
我得到一個場景,我必須在ArrayList
(Bitmap
或Drawable
)中存儲一些圖像。 當位圖出現時,我會考慮內存問題,如OutOfMemory
。 ArrayList
的Drawable
有什麼區別?或者它會是Bitmap
的ArrayList
? 我應該使用什麼?Drawable或ArrayList的位圖的ArrayList?
我得到一個場景,我必須在ArrayList
(Bitmap
或Drawable
)中存儲一些圖像。 當位圖出現時,我會考慮內存問題,如OutOfMemory
。 ArrayList
的Drawable
有什麼區別?或者它會是Bitmap
的ArrayList
? 我應該使用什麼?Drawable或ArrayList的位圖的ArrayList?
這是一個有趣的問題...概括我的答案,因爲我不知道爲什麼你需要使用/Bitmap
的List
。
說實話,因爲我不會用他們都沒有:
Intent
將該列表發送到不同的組件。如果你這樣做,並且初始列表沒有被銷燬,你將進入一個案例,你將內存數量加倍,因爲Bitmaps將被反序列化爲目標組件端的新對象。BitmapDrawable
保留對它的位圖的引用,所以我沒有看到它提供了比Bitmap本身更多的好處。您可能會「忘記」清除Drawables
的列表,並且這種方式會導致內存泄露Bitmaps。我不認爲創建一個Drawable
是耗費時間或資源消耗以使其值得高速緩存。要添加更多的,你必須覆蓋所有在您的活動被破壞,重新創建,這樣你就不會泄漏列表中的情況。個人而言,對於從網絡下載的位圖,我寧願使用LRUCache
來存儲Bitmap
,將鍵分配給它們並將它們備份到磁盤緩存。我會爲每個鍵分配鍵,並且只能使用這些鍵。有像DiskLRUCache
,picasso或novoda-ImageLoader這樣的圖書館可以幫助你很多。
同樣適用於資源位圖:僅使用密鑰工作 - 無需緩存它們。資源圖片應足夠小,以滿足您的設備尺寸和密度,並且足夠大以滿足您的需求。
這只是我的意見了......
http://stackoverflow.com/questions/4570929/drawable-advantage-over-bitmap-for-memory-in-android – KOTIOS