-1

我对 Bitmap.createBitmap() 的调用总是会导致 gc_for_alloc。这是代码:

if (theFinger.isTheSaveFlag())
{
    theBackGroundBuffer.position(0);
    gl.glReadPixels(0, 0, theBackGroundWidth, theBackGroundHeight, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, theBackGroundBuffer);
    theBackGroundBuffer.position(0);
    theBackGroundBuffer.get(theBackGroundPixel);
    theBackGroundTexture.dispose();
    theBackGround.recycle();
    theBackGround = Bitmap.createBitmap(theBackGroundPixel, theBackGroundWidth, theBackGroundHeight, Bitmap.Config.ARGB_8888);
    theBackGroundTexture.load(theBackGround);
}

有人能告诉我为什么吗?

4

1 回答 1

0

在 android 中,它总是调用垃圾收集器从内存中收集和删除未使用的资源,这就是为什么它会打印gc_for_alloc消息,显示未使用的资源正在被删除并为需要它的其他资源分配空间。

特别是当您对图像进行操作并在内存中加载大量图像时,它会被调用,这需要更多的空间来加载。

于 2013-10-16T10:19:15.287 回答