我需要创建一个图库类型的应用程序。我需要显示许多图像并提供缩放和滑动效果的地方。
现在我正在使用 android.widget.Gallery
并在我的图库 Adapter
的 getview
中将图像设置为 imageview
类(扩展 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 .但是所有的解决方案都会降低图像质量。
以较少内存显示高质量图像且不会导致位图大小超出 VM 预算
的最佳方法是什么?
有什么建议吗?
谢谢
最佳答案
唯一的解决方案是加载较小尺寸的位图(BitmapFactory.Options 允许您在加载时对位图重新取样),或者尝试回收其他您可能已加载但不再需要的大位图.
关于android - 显示质量图像 - 位图大小超出 VM 预算错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821210/