我有一個應用程序,它可以運行大量(~100)位圖 - 即音樂封面藝術。位圖以兩種方式使用 - 作爲大背景和小(50dip)圖標。 將兩種尺寸預加載並緩存爲單獨的位圖是否合理? 我已經實現了這兩種方法(使用大的位圖作爲圖標|緩存兩種尺寸),但我看不到實際的性能差異。 這種情況的最佳做法是什麼?Android位圖緩存
2
A
回答
7
在緩存兩個圖像大小時沒有意義,內存太多。
最好的做法是(以我愚見):
- 確保您的緩存使用SoftReferences,這種方式可以確保你沒有用完的內存,並且可以隨時加載新的位圖在損失舊的「費用」上。
- 使用Canvas的drawBitmap方法繪製較小的大尺寸位圖。
- 請確保您防範OutOfMemoryError,並注意它是Throwable的子類,而不是Exception的子類,因此
catch(Exception e)
子句不會捕獲它。
1
就個人而言,我會盡我所能來限制我在內存中保留的位圖數量。如果圖標看起來像較大位圖的縮小副本看起來不錯,我會贊成這種方法。這可能是一個有偏見的觀點,因爲我的個人經驗,但我使用Android的經驗中遇到的最大問題是使用Bitmap時內存不足
相關問題
- 1. 緩存位圖 - Android
- 2. 緩存位圖
- 3. 存儲位圖在Android緩存中的屏幕截圖
- 4. 位圖緩存或PNG?
- 5. Android中的EhCache用於緩存位圖圖像?
- 6. android下載/緩存圖像
- 7. Android Flickr Json緩存圖像
- 8. Android:爲imageView緩存圖像
- 9. 圖像加載程序位圖緩存
- 10. 更改android的默認緩存位置
- 11. 位圖緩存如何工作?
- 12. as3緩存爲位圖偵聽器?
- 13. 位圖緩衝
- 14. 位圖內存泄漏 - Android
- 15. Android位圖內存分配
- 16. Android位圖 - 內存不足
- 17. 在Android中存儲位圖
- 18. Android內存泄漏位圖
- 19. 在Android中保存位圖
- 20. 保存旋轉位圖android
- 21. 復位PHP緩存
- 22. Android VideoView緩存
- 23. Android,從不同的活動保存和加載緩存中的位圖
- 24. Android - 繪圖緩存 - 何時有用?
- 25. 如何在android中緩存圖片?
- 26. Geoserver/google_maps/Android保存緩存
- 27. 使用緩存android
- 28. 在Android中緩存
- 29. 緩存視圖
- 30. 緩存圖片?
感謝您的SoftReference!這是我錯過的重要一點。 – 2011-02-14 16:45:07