【发布时间】:2013-06-26 11:57:21
【问题描述】:
在处理位图时,我们的 Android 应用程序出现了一些内存问题(呃!)。
我们有多个活动从服务器加载图像,这可能是活动的背景图像。 对于多个活动,这个背景图像可能是相同的,现在每个活动都在加载自己的背景图像。 这意味着如果流程是 ac1->ac2->ac3->ac4,则相同的图像将被加载 4 次并使用 4x 内存。
如何针对这种情况优化图像处理?我是否创建存储图像的图像缓存,然后每个活动首先向缓存询问图像。如果是这种情况,我怎么知道何时从缓存中垃圾收集图像?
非常感谢任何建议、指向优秀教程或类似内容的链接。
问候
编辑: 为设备下载图像时,会使用精确尺寸,这意味着如果 ui 元素需要 100x100 像素的图像,它会获得该尺寸,因此无需缩放。所以我不确定在将图像加载到内存时是否会缩小图像。可能需要在下一个移动时卸载活动中的图像,然后在返回时重新加载。
【问题讨论】:
-
您可以查看 Universal Image Loader github.com/nostra13/Android-Universal-Image-Loader - 可能是目前最好的缓存解决方案。它还做了一些智能内存处理。如果需要,我可以上传 Xamarin 的所有绑定。
-
要缩小图像并加载压缩格式,您可以参考appliedcodelog.blogspot.in/2015/07/avoiding-imagebitmap.html
标签: caching bitmap xamarin.android xamarin