Android 从相机获取图片,存到指定文件进行编辑,bitmap总是为空

来源:互联网 发布:软件开发人工费 标准 编辑:程序博客网 时间:2024/06/01 09:48

pChoice.setOnClickTextViewListener(new PopChoice.OnClickTextViewListner() {   @Override   public void onTextViewClick(String tag) {      if (tag.equals("相机")) {         if (checkPermission(Manifest.permission.CAMERA)){            intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);            intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));            startActivityForResult(intent, REQUEST_CODE_PHOTO);         }else {            //申请权限            ActivityCompat.requestPermissions(SetActivity.this, new String[]{Manifest.permission.CAMERA}, REQUEST_PERMISSION_CAMERA );         }

private File file = new File(Environment.getExternalStorageDirectory() + "/temp.png");

case REQUEST_CODE_PHOTO:   if (intent != null && intent.getData() != null) {      uri = intent.getData();   }   if (uri == null) {      uri = Uri.fromFile(file);   }   int degree = readPictureDegree(file.getAbsolutePath());   BitmapFactory.Options opts = new BitmapFactory.Options();// 获取缩略图显示到屏幕上   opts.inSampleSize = 2;   Bitmap cbitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), opts);   if(null != cbitmap){      /**       * 把图片旋转为正的方向       */      Bitmap newbitmap = rotaingImageView(degree, cbitmap);      if (MediaStore.Images.Media.insertImage(getContentResolver(), newbitmap, null, null) != null) {         uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), newbitmap, null, null));      }      startPhotoZoom(uri);   }else {      JUtils.Toast("获取图片失败");   }   break;

经过各种折腾,各种改,终于发现了原因

就是权限没加、、、、从相机获取照片保存到指定的文件夹,需要储存卡的读写权限,6.0之后是手动添加的,,,,我只添加了打开相机的权限

if (checkPermission(Manifest.permission.CAMERA)&&checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE)&&checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)){

这样就ok了 



















0 0