0

我没有成功解决这个错误:

java.lang.OutOfMemoryError:位图大小超出 VM 预算。

我的代码是:

BitmapFactory.Options op = new BitmapFactory.Options();
myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath(),op);
ImageView _image = (ImageView)view.findViewById(R.id.imageCarte);

int width = myBitmap.getWidth();
int height = myBitmap.getHeight();
int halfWidth = width/2;
int halfHeight = height/2;
Bitmap bmHalf = Bitmap.createScaledBitmap(myBitmap, halfWidth, halfHeight, false);
_image.setImageBitmap(bmHalf);
4

2 回答 2

0

是在 Android 中处理位图的必读内容。

于 2012-05-06T10:58:26.153 回答
0

您可以在实例上指定inSampleSizeBitmapFactory.Options

如果设置为大于 1 的值,则请求解码器对原始图像进行二次采样,返回较小的图像以节省内存。

例如:

BitmapFactory.Options op = new BitmapFactory.Options();
op.inSampleSize = 2
myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath(),op);
ImageView _image = (ImageView)view.findViewById(R.id.imageCarte);
_image.setImageBitmap(myBitmap);
于 2012-05-06T11:03:14.543 回答