Отображение изображения с качеством - размер растрового изображения превышает бюджет виртуальной машины Ошибка

1

Мне нужно создать приложение типа галереи. Где мне нужно отображать много изображений и давать масштабирование и скользящие эффекты.
Теперь я использую android.widget.Gallery и устанавливаю изображение в imageview в getview моей галереи Adapter class (extends BaseAdapter). Я установил изображение с помощью растрового изображения, которое задается с помощью следующего кода

Bitmap  mBitmap = BitmapFactory.decodeFile(imagePathArray.get(position));
imageview.setImageBitmap(mBitmap);

Сначала он работает нормально, но после перехода на третье или четвертое изображение сбой приложения со следующей ошибкой

  ERROR/AndroidRuntime(12184):  FATAL EXCEPTION: main
  ERROR/AndroidRuntime(12184):  java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

в инструкции decodeFile.

Когда я искал bitmap size exceeds VM budget, у меня было много решений, таких как android-strange-out-of-memory-issue. Но все решения уменьшают качество изображения.
Каков наилучший способ отображения изображения в хорошем качестве и с меньшим объемом памяти, что не вызовет bitmap size exceeds VM budget?
Любое предложение?
Спасибо вам

Теги:
image
out-of-memory
bitmap

1 ответ

2
Лучший ответ

Единственное решение, которое у вас есть, - загрузить растровое изображение с меньшим размером (BitmapFactory.Options позволяет перемасштабировать растровое изображение во время загрузки) или попытаться переработать другие большие растровые изображения, которые вы, возможно, загрузили и которые вам больше не нужны.

  • 0
    Спасибо Romain Guy за твой ответ. Можете ли вы дать мне ссылку, как сделать эту переработку растрового изображения?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню