我需要大位图 (6000x2000),所以我创建了一个:
Bitmap.Config conf = Bitmap.Config.ARGB_4444;
Bitmap bm = Bitmap.createBitmap(6000, 2000, conf);
然后在该方法的末尾,我回收了 bm 并将其设置为 null。 但同样,每次调用我的方法时,我的堆都会增长。每次直到抛出 OutOfMemoryError。
最佳答案
问题在于,在 Android 3.x 之前,位图可能需要几个 GC 周期才能在 Android 上正确发布。即使您调用 recycle(),我相信至少在下一次 GC 之前位图会影响您的堆使用情况。这是我建议您通过调用 System.gc() 强制执行 GC 的极少数情况之一。您也可以尝试使用几个较小的位图。
关于java - Android Bitmap.createBitmap() 填充堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7010467/