zoukankan      html  css  js  c++  java
  • java.lang.OutOfMemoryError: bitmap size exceeds VM budget

    功能介绍 用户拍照上传服务器 调用系统拍照功能

    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设置图片的比例显示值。

  • 相关阅读:
    forEach 终止循环
    js 解决引用赋值修改新数组导致原数组跟着改变的问题
    es6判断数组是否包含某个元素
    tab css 切换效果
    js对象赋值影响原对象
    小程序返回上个页面 修改上个页面的数据
    小程序 scroll-view scroll-x 不生效
    proxy跨域处理
    常用Dos操作指令
    django全文检索
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/2513868.html
Copyright © 2011-2022 走看看