Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)

  

特点:点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。
  

  

问题:拍好照片,点击裁剪,弹土司”无法加载此图片”。
  

  

解决方案:在裁剪的类里加两行代码
  

  

intent.addFlags (Intent.FLAG_GRANT_READ_URI_PERMISSION);
  

  

intent.addFlags (Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

  

<强>主要代码如下:

  

,,,

        公共静态最终字符串PHOTO_IMAGE_FILE_NAME=癴ileImg.jpg”;   公共静态最终int CAMERA_REQUEST_CODE=100;   公共静态最终int IMAGE_REQUEST_CODE=101;   公共静态最终int RESULT_REQUEST_CODE=102;   私人文件tempFile=零;   私人Uri imageUri;//跳转相机   私人空间toCamera () {   .getExternalCacheDir文件outputImage=新文件(getActivity () (),   PHOTO_IMAGE_FILE_NAME);   尝试{   如果(outputImage.exists ()) {   outputImage.delete ();   }   outputImage.createNewFile ();   }捕捉(IOException e) {   e.printStackTrace ();   }   如果(Build.VERSION。SDK_INT祝辞=24){   imageUri=FileProvider.getUriForFile (getActivity (),   “com.liushengjie.smartbutler。fileprovider”, outputImage);   其他}{   imageUri=Uri.fromFile (outputImage);   }//启动相机程序   目的意图=new意图(“android.media.action.IMAGE_CAPTURE”);   intent.putExtra (MediaStore。EXTRA_OUTPUT imageUri);   startActivityForResult(意图,CAMERA_REQUEST_CODE);   dialog.dismiss ();   }//跳转相册   私人空间toPicture () {   目的意图=new意图(Intent.ACTION_PICK);   intent.setType(“图像/*”);   startActivityForResult(意图,IMAGE_REQUEST_CODE);   dialog.dismiss ();   }   @Override   公共空间onActivityResult (int, int requestCode resultCode,意图数据){   如果(resultCode !=getActivity () .RESULT_CANCELED) {   开关(requestCode) {//相机数据   案例CAMERA_REQUEST_CODE://tempFile=新文件(Environment.getExternalStorageDirectory (), PHOTO_IMAGE_FILE_NAME);//startPhotoZoom (Uri.fromFile (tempFile));   startPhotoZoom (imageUri);   打破;//相册数据   案例IMAGE_REQUEST_CODE:   startPhotoZoom (data.getData ());   打破;   案例RESULT_REQUEST_CODE://有可能点击舍弃   如果(数据!=null) {//拿到图片设置   setImageToView(数据);//删除原来的图片   如果(tempFile !=null) {   tempFile.delete ();   }   }   打破;   }   }   }//裁剪   私人空间startPhotoZoom (Uri Uri) {   如果(uri==null) {   le (uri==null);   返回;   }   目的意图=new意图(“com.android.camera.action.CROP”);   意图。setDataAndType (uri,“图像/*”);   intent.addFlags (Intent.FLAG_GRANT_READ_URI_PERMISSION);   intent.addFlags (Intent.FLAG_GRANT_WRITE_URI_PERMISSION);//裁剪   意图。putExtra(“作物”,真正的);//宽高比例   意图。putExtra (" aspectX ", 1);   意图。putExtra (" aspectY ", 1);//图片质量   意图。putExtra (“outputX ", 320);   意图。putExtra (“outputY ", 320);//发送数据   意图。putExtra(“返回数据”,真正的);   startActivityForResult(意图,RESULT_REQUEST_CODE);   }//设置图片   私人空间setImageToView(意图数据){   捆包=data.getExtras ();   如果(包!=null) {   位图的位图=bundle.getParcelable(“数据”);   profile_image.setImageBitmap(位图);   }   }      

  

以上所述是小编给大家介绍的Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0),希望对大家有所帮助,如果大家有任何疑问欢迎给我留的言,小编会及时回复大家的!

Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)