您的位置:首页 > 编程语言 > Java开发

java.lang.OutOfMemoryError: bitmap size exceeds VM budget

2012-05-22 21:08 411 查看
功能介绍 用户拍照上传服务器 调用系统拍照功能

public static Uri CameraStart(Activity activity,int requestcode) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
Uri photoUri = activity.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
activity.startActivityForResult(intent, requestcode);
return photoUri;
}


以上方法拍照完成后 有的手机会出现二张图片有的手机一张,一直未解决该问题,希望有遇到问题的同仁们帮忙解决下。 

调用方法

private Uri photoUri;
photoUri=Camera.CameraStart(CompanyActivity.this,Const.CASE_CAMERA);

private BitmapFactory.Options options;
private Bitmap bitmap;

if (requestCode == Const.CASE_CAMERA) {
ContentResolver cr = this.getContentResolver();
Cursor cursor = cr.query(photoUri, null, null, null, null);
cursor.moveToFirst();
if (cursor != null) {
imagePath = cursor.getString(1);
cursor.close();
}
options = new BitmapFactory.Options();
options.inJustDecodeBounds=false;
options.inSampleSize = 8;
bitmap = BitmapFactory.decodeFile(imagePath, options);
ivlogo.setImageBitmap(bitmap);
}


  共上图11张图片 每张图片大小是1M以上,当我点击第三张拍照点击确定后提示我 内存溢出,原因是Bitmap问题 3张图片大小我看了下图片大小接近4M。

用BitmapFactory可以解决内存溢出,inSampleSize设置图片的比例显示值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐