Мне нужно создать приложение типа галереи. Где мне нужно отобразить много изображений и дать эффекты масштабирования и скольжения.
Теперь я использую android.widget.Gallery
и устанавливаю изображение на imageview
в getview
моей галереи Adapter
класса (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-странное из-за-памяти-проблема . Но все решения снижают качество изображения.
Каков наилучший метод для отображения изображения в хорошем качестве и с меньшим объемом памяти, который не вызовет bitmap size exceeds VM budget
?
Любое предложение?
Спасибо