Android Bitmap.createBitmap () заполняет кучу - PullRequest
4 голосов
/ 10 августа 2011

Мне нужно большое растровое изображение (6000x2000), поэтому я создаю его:

Bitmap.Config conf = Bitmap.Config.ARGB_4444;
Bitmap bm = Bitmap.createBitmap(6000, 2000, conf);

И затем в конце метода я перезаписываю bm и устанавливаю его в null.Но опять же, моя куча растет каждый раз, когда вызывается мой метод.Каждый раз, когда он выбрасывает OutOfMemoryError.

1 Ответ

3 голосов
/ 14 августа 2011

Проблема в том, что для правильного выпуска растрового изображения на Android до Android 3.x может потребоваться пара циклов GC. Даже если вы вызываете recycle (), я полагаю, что растровое изображение учитывается при использовании кучи до следующего GC. Это одна из немногих ситуаций, когда я бы посоветовал вам вызвать GC, вызвав System.gc (). Вы также можете попробовать использовать несколько небольших растровых изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...