我有一个应用程序,它可以运行大量(~100)位图 - 即音乐封面艺术。位图以两种方式使用 - 作为大背景和小(50dip)图标。 将两种尺寸预加载并缓存为单独的位图是否合理? 我已经实现了这两种方法(使用大的位图作为图标|缓存两种尺寸),但我看不到实际的性能差异。 这种情况的最佳做法是什么?Android位图缓存
2
A
回答
7
在缓存两个图像大小时没有意义,内存太多。
最好的做法是(以我愚见):
- 确保您的缓存使用SoftReferences,这种方式可以确保你没有用完的内存,并且可以随时加载新的位图在损失旧的“费用”上。
- 使用Canvas的drawBitmap方法绘制较小的大尺寸位图。
- 请确保您防范OutOfMemoryError,并注意它是Throwable的子类,而不是Exception的子类,因此
catch(Exception e)
子句不会捕获它。
1
就个人而言,我会尽我所能来限制我在内存中保留的位图数量。如果图标看起来像较大位图的缩小副本看起来不错,我会赞成这种方法。这可能是一个有偏见的观点,因为我的个人经验,但我使用Android的经验中遇到的最大问题是使用Bitmap时内存不足
相关问题
- 1. android位图缓存
- 2. 缓存位图Android
- 3. 缓存位图 - Android
- 4. Android位图缓存
- 5. 缓存位图
- 6. 在磁盘上缓存位图Android
- 7. 通过ContentProvider的Android位图缓存
- 8. 存储位图在Android缓存中的屏幕截图
- 9. Android缓存数据库存储图像位图
- 10. 位图缓存或PNG?
- 11. 排球和位图缓存
- 12. Android中的EhCache用于缓存位图图像?
- 13. 使用缓存来存储位图
- 14. android中的图像缓存
- 15. Android缓存webview图像?
- 16. Android Flickr Json缓存图像
- 17. android下载/缓存图像
- 18. 缓存谷歌地图android?
- 19. Android:为imageView缓存图像
- 20. Android图像缓存 - 如何?
- 21. 图像加载程序位图缓存
- 22. 在Android中将位图对象缓存到内存的位置何处停止?
- 23. 更改android的默认缓存位置
- 24. 将图像保存在缓存中android
- 25. 引用计数android带高速缓存的位图
- 26. 如何在Android中使用Picasso维护位图缓存
- 27. Android LRU缓存没有显示正确的位图?
- 28. Android Glide:如何下载和缓存位图?
- 29. 是本地的缓存,同位缓存
- 30. 缓存位图代码混淆
感谢您的SoftReference!这是我错过的重要一点。 – 2011-02-14 16:45:07