-2

我正在制作一个绘画应用程序,在其中绘制多条线时,我必须在 Arraylist 中添加图像的位图。不幸的是,我遇到了内存不足的异常。尽管我增加了堆的大小,但我无法解决这个问题。

我在这样的 Arraylist 中添加当前位图:

linesbitmap.add(Bitmap.createBitmap(mBitmap));
4

1 回答 1

4

在Android的arraylits中添加位图时堆内存大小增加?

当然。如果你往桶里倒更多的水,桶里的水就会更多。如果你把更多的东西放在一个袋子里,袋子里的东西就会更多。如果分配更多内存,您将使用更多内存。这与 Android 没有太大关系——这是计算机在过去约 50 年中的工作方式。

我无法处理

使用更少的内存:

  • 列表中的位图更少
  • 列表中的位图更小(像素更少,颜色深度更低)
  • recycle()在将更多内容添加到列表之前删除列表中的位图
  • 将数据移出内存并移入文件(例如,保留位图,然后将其从列表中删除)
  • 更有效地保存数据(例如,保留有关如何绘制线条的说明,而不是表示线条的位图)
  • 等等

我也增加了堆的大小

在大多数 Android 版本上,您无法增加堆的大小。

于 2012-04-19T13:55:46.917 回答