读书人

解决java.lang.OutOfMemoryError: bit

发布时间: 2012-07-16 15:44:59 作者: rapoo

解决java.lang.OutOfMemoryError: bitmap size exceeds VM 方式

当图片过大,或图片数量较多时使用BitmapFactory解码图片会出java.lang.OutOfMemoryError: bitmap size exceeds VM budget,要想正常使用则需分配更少的内存,具体的解决办法是修改采样值BitmapFactory.Options.inSampleSize,例如:

BitmapFactory.Options opts = new BitmapFactory.Options();opts.inJustDecodeBounds = true;BitmapFactory.decodeFile(imageFile, opts);opts.inSampleSize = computeSampleSize(opts, -1, 128*128);opts.inJustDecodeBounds = false;try {Bitmap bmp = BitmapFactory.decodeFile(imageFile, opts);imageView.setImageBitmap(bmp); } catch (OutOfMemoryError err) {}
另外,可以通过Bitmap.recycle()方法来释放位图所占的空间,当然前提是位图没有被使用

读书人网 >Ruby Rails

热点推荐