【问题标题】:MonoDroid: About Bitmap.Recycle() and Bitmap.Dispose()MonoDroid:关于 Bitmap.Recycle() 和 Bitmap.Dispose()
【发布时间】:2013-01-13 19:19:38
【问题描述】:

Bitmap.Recycle() 之后我还需要拨打Bitmap.Dispose() 吗?还是仅仅Bitmap.Dispose() 就够了?

【问题讨论】:

    标签: android bitmap mono xamarin.android dispose


    【解决方案1】:

    根据Android文档Bitmap.Recycle()应该足够了:

    释放与此位图关联的本机对象,并清除 参考像素数据。

    Mono for Android documentation 说的完全一样。

    另外,this question 进一步了解了 Bitmap.Recycle 的工作原理。

    【讨论】:

    • 在将旧代码 bitmap?.Dispose() 替换为 bitmap?.Recycle() 后,我正在修复的应用程序行为异常。此外,位图会失真
    【解决方案2】:

    另一种解决方案可能是包装在 using 语句中:

    using (var bm = new Bitmap(..))
    {
        // Do stuff with the Bitmap here
    }
    

    请记住,当您离开 using 语句的范围时,Bitmap 可能会被垃圾回收。因此,如果您只是将其绘制到 Canvas 或其他地方,这是一个不错的方法。

    【讨论】:

      猜你喜欢
      • 2015-11-14
      • 2011-09-09
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 2015-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多