java - Android Bitmap.createBitmap() 填充堆

标签 java android graphics

我需要大位图 (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/

相关文章:

java - java 和 python 中的 Unicode 字符串支持

Android Studio XML 预览不显示

java - 如何在Android中调用另一个类的一个方法

Java JFrame fillRect 方法绘制错误的矩形大小

C#-WinForms ||用于旋转的图形的多个实例

java - 使用条件表达式尝试资源

java - 使用多个线程池和连接池

Java 图形 - 重新绘制图像而不删除另一个图像

java - 如何将关键对象(s3)的列表(包含特定字符串)过滤到新列表中

android - 如何从我的 PC 浏览器使用 android 发送短信?