【发布时间】:2013-01-13 19:19:38
【问题描述】:
在Bitmap.Recycle() 之后我还需要拨打Bitmap.Dispose() 吗?还是仅仅Bitmap.Dispose() 就够了?
【问题讨论】:
标签: android bitmap mono xamarin.android dispose
在Bitmap.Recycle() 之后我还需要拨打Bitmap.Dispose() 吗?还是仅仅Bitmap.Dispose() 就够了?
【问题讨论】:
标签: android bitmap mono xamarin.android dispose
根据Android文档Bitmap.Recycle()应该足够了:
释放与此位图关联的本机对象,并清除 参考像素数据。
Mono for Android documentation 说的完全一样。
另外,this question 进一步了解了 Bitmap.Recycle 的工作原理。
【讨论】:
bitmap?.Dispose() 替换为 bitmap?.Recycle() 后,我正在修复的应用程序行为异常。此外,位图会失真
另一种解决方案可能是包装在 using 语句中:
using (var bm = new Bitmap(..))
{
// Do stuff with the Bitmap here
}
请记住,当您离开 using 语句的范围时,Bitmap 可能会被垃圾回收。因此,如果您只是将其绘制到 Canvas 或其他地方,这是一个不错的方法。
【讨论】: