Android: "java-lang-outofmemoryerror-bitmap-size-превышает-vm-budget-android" При загрузке растровых изображений из SDCard? - PullRequest
0 голосов
/ 14 февраля 2011

В моем приложении мне нужно отобразить изображение размером около 10000 x 5000, используя маленькие изображения размером 500x500 пикселей.Т.е. через черепичные изображения.Для того, чтобы объединить все изображения в одно, я собираю все растровые изображения с SDCard для рисования на холсте.

Но пока я загружаю изображения из внешнего хранилища, используя BitmapFactory.decodeFile(path), я обнаружил ошибку java-lang-outofmemoryerror-bitmap-size-превышает-vm-budget-android

может любой, как избежать этой ошибки и дать мне идею, как объединить множество изображений в одно изображение.

Благодарю вас, Шринивас

1 Ответ

0 голосов
/ 14 февраля 2011
  1. Никогда не загружайте ненужные плитки.«Я собираю все растровые изображения с SDCard» предполагает, что вы распаковываете каждое изображение, которое вам может понадобиться, что было бы неправильным подходом.

  2. Используйте меньшие плитки.256x256 - хороший размер.

  3. Загрузить их как Config.RGB565 (т.е. 16bpp).

  4. Регулярно перерабатывать () растровые изображения, которые вы не делаетенеобходимость.

По сути, вам нужно реализовать какой-то недавно использованный (MRU) битовый кэш.

...