/***
*@paramuri==null 表示為相機(jī)拍攝
*@paramaspectX裁剪框X比例,默認(rèn)1
*@paramaspectY裁剪框X比例,默認(rèn)1
*@paramoutputX裁剪后輸出圖片的x
*@paramoutputY裁剪后輸出圖片的y
*/
public voidcrop(Activity activity,Uri uri,intaspectX,floataspectY, intoutputX,intoutputY) {
Uri mUri = uri ==null? Uri.fromFile(getTempFile()) : uri;
// 裁剪圖片意圖
Intent intent =newIntent("com.android.camera.action.CROP");
intent.setDataAndType(mUri,"image/*");
intent.putExtra("crop","true");
// 裁剪框的比例,1:1
intent.putExtra("aspectX",aspectX);
intent.putExtra("aspectY",aspectY);
// 裁剪后輸出圖片的尺寸大小
intent.putExtra("outputX",outputX);
intent.putExtra("outputY",outputY);
//設(shè)置剪切的圖片保存位置
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.parse(cropUrl));
intent.putExtra("outputFormat","JPEG");// 圖片格式
intent.putExtra("noFaceDetection", true);// 取消人臉識(shí)別
intent.putExtra("return-data", false);
// 開啟一個(gè)帶有返回值的Activity校坑,請求碼為PHOTO_REQUEST_CUT
activity.startActivityForResult(intent,PHOTO_REQUEST_CUT);
tempFile=newFile(Environment.getExternalStorageDirectory(),cropUrl);
}
調(diào)用該方法進(jìn)行圖片剪裁,把圖片保存在本地剃氧,在activty的onActivityResult中通過
bitmap=BitmapFactory.decodeStream(getApplicationContext().getContentResolver().openInputStream(Uri.parse(PhotoDialog.cropUrl)));
獲取到bitmap對(duì)象玉组,使用完后調(diào)用
tempFile=newFile(Environment.getExternalStorageDirectory(),cropUrl);
tempFile.delete();
刪除