解决小米miui系统调用系统裁剪图片功能camera.action.CROP后崩溃

选择相册图片(或调用MediaStore.ACTION_IMAGE_CAPTURE拍照),然后裁剪。在其他系统上都测试正常,但是在小米上出现了问题。小米2s上,裁剪后点击确定直接卡死系统;小米3上,裁剪后点击确定直接回到主界面,相当于重新打开app。就是说,裁剪后,无法响应onActivityResult(),裁剪方法如下:

/*** 裁剪图片*/private void startPhotoZoom(Uri uri, int size) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");// crop为true是设置在开启的intent中设置显示的view可以剪裁intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX,outputY 是剪裁图片的宽高intent.putExtra("outputX", size);intent.putExtra("outputY", size);intent.putExtra("return-data", true);startActivityForResult(intent, PHOTO_REQUEST_CUT);}解决思路是:裁剪后,将裁剪的图片保存在Uri中,,在onActivityResult()方法中,再将Uri转换为Bitmap使用。 /*** 裁剪图片*/private void startPhotoZoom(Uri uri, int size) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");// crop为true是设置在开启的intent中设置显示的view可以剪裁intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX,outputY 是剪裁图片的宽高intent.putExtra("outputX", size);intent.putExtra("outputY", size);/*** 此方法返回的图片只能是小图片(sumsang测试为高宽160px的图片)* 故将图片保存在Uri中,调用时将Uri转换为Bitmap,此方法还可解决miui系统不能return data的问题*///intent.putExtra("return-data", true);//uritempFile为Uri类变量,实例化uritempFileuritempFile = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/" + "small.jpg");intent.putExtra(MediaStore.EXTRA_OUTPUT, uritempFile);intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());startActivityForResult(intent, PHOTO_REQUEST_CUT);}然后在onActivityResult()中处理: /*** 处理返回结果*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubcase PHOTO_REQUEST_CUT://将Uri图片转换为BitmapBitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uritempFile));//TODO,将裁剪的bitmap显示在imageview控件上break;}super.onActivityResult(requestCode, resultCode, data);}

爱人,却不一定能够听懂。他们听见的,多是抱怨不休,心烦意乱。

解决小米miui系统调用系统裁剪图片功能camera.action.CROP后崩溃

相关文章:

你感兴趣的文章:

标签云: