gpt4 book ai didi

android - 如何有效地回收按以下代码创建的位图?

转载 作者:行者123 更新时间:2023-11-29 14:52:54 25 4
gpt4 key购买 nike

我创建了如下位图,

//在下一行创建位图
位图 myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.googlelogo320x480);
我已将其设置为 ImageView。

我的问题是:1> 我需要在上面的位图上显式调用 Bitmap.recycle() 吗?2> 如果是,那么我应该什么时候调用它?我尝试在第 3 行之后立即调用它,即在将位图设置为 ImageView 之后,但是我得到一个异常,Canvas 试图绘制一个回收的对象。3> 如果在我的代码中从未在 Bitmap 上调用 recycle() ,是否会发生内存泄漏?P.S: 我是做ICS以上的。

最佳答案

在这种特殊情况下,不,您不应该调用 recycle(); ImageView 将在完成后调用 recycle()。这已经有一段时间了,ICS 没有采取任何措施来改变这一事实。

当您的代码处理完图像后,您需要调用 recycle()。例如,如果您对一张图像应用 10 个滤镜并在每一步生成一个新位图,则您应该在每一步之后对旧位图调用 recycle()。

也就是说,您不能同时拥有无限数量的位图,尤其是大的位图。这就是您需要机灵并动态加载/卸载的时候。

关于android - 如何有效地回收按以下代码创建的位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13100872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com