特点:点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。
问题:拍好照片,点击裁剪,弹土司”无法加载此图片”。
解决方案:在裁剪的类里加两行代码
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),希望对大家有所帮助,如果大家有任何疑问欢迎给我留的言,小编会及时回复大家的!