首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android: Bitmap recycle()是如何工作的?

Android: Bitmap recycle()是如何工作的?
EN

Stack Overflow用户
提问于 2010-09-30 00:39:06
回答 3查看 99.5K关注 0票数 93

假设我在一个位图对象中加载了一个图像,如下所示

代码语言:javascript
运行
复制
Bitmap myBitmap = BitmapFactory.decodeFile(myFile);

现在,如果我加载另一个位图,会发生什么呢

代码语言:javascript
运行
复制
myBitmap = BitmapFactory.decodeFile(myFile2);

第一个myBitmap会发生什么?它会被垃圾回收吗?还是我必须在加载另一个位图之前手动对其进行垃圾回收。myBitmap.recycle()

另外,有没有更好的方法来加载大图像,并在回收的过程中一个接一个地显示它们?

EN

Stack Overflow用户

发布于 2011-07-11 17:31:34

在加载下一个图像之前,您需要调用myBitmap.recycle()。

根据myFile的来源(例如,如果它是您无法控制原始大小的内容),在加载图像时,而不是简单地重新采样某个任意数字,您应该将图像缩放到显示大小。

代码语言:javascript
运行
复制
if (myBitmap != null) {
    myBitmap.recycle();
    myBitmap = null;
}
Bitmap original = BitmapFactory.decodeFile(myFile);
myBitmap = Bitmap.createScaledBitmap(original, displayWidth, displayHeight, true);
if (original != myBitmap)
    original.recycle();
original = null;

我在活动开始时初始化的静态缓存中缓存了displayWidth & displayHeight。

代码语言:javascript
运行
复制
Display display = getWindowManager().getDefaultDisplay();
displayWidth = display.getWidth();
displayHeight = display.getHeight();
票数 21
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3823799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档