我需要创建一个库类型的应用程序。我需要在哪里显示许多图像并给出缩放和滑动效果
现在我正在使用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-strange-out-of-memory-issue这样的解决方案。但所有解决方案都在降低图像质量
以高质量和低内存显示图像的最佳方法是什么?这不会导致bitmap size exceeds VM budget
?
有什么建议吗?
谢谢
答案 0 :(得分:2)
您唯一的解决方案是以较小的尺寸加载位图(BitmapFactory.Options允许您在加载时重新采样位图),或尝试回收您可能已加载的其他大型位图,而您不再需要