android使用原生剪裁的配置

2016-08-04  本文已影响251人  尚妆杨逍

/***

*@paramuri==null 表示为相机拍摄

*@paramaspectX裁剪框X比例,默认1

*@paramaspectY裁剪框X比例,默认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);

//设置剪切的图片保存位置

intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.parse(cropUrl));

intent.putExtra("outputFormat","JPEG");// 图片格式

intent.putExtra("noFaceDetection", true);// 取消人脸识别

intent.putExtra("return-data", false);

// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_CUT

activity.startActivityForResult(intent,PHOTO_REQUEST_CUT);

tempFile=newFile(Environment.getExternalStorageDirectory(),cropUrl);

}

调用该方法进行图片剪裁,把图片保存在本地,在activty的onActivityResult中通过

bitmap=BitmapFactory.decodeStream(getApplicationContext().getContentResolver().openInputStream(Uri.parse(PhotoDialog.cropUrl)));

获取到bitmap对象,使用完后调用

tempFile=newFile(Environment.getExternalStorageDirectory(),cropUrl);

tempFile.delete();

删除

上一篇下一篇

猜你喜欢

热点阅读