本文通过代码展示阐述在Android项目中如何对图片进行裁剪
这里首先需要说明的是这里需要传入的参数是uri,而关于uri的获取可以参考前面的博客:
关于Android项目相机使用(一)--------相机调用_Hersiman的博客-CSDN博客
关于Android项目相机使用(二)--------相册调用_Hersiman的博客-CSDN博客
关于Android项目相机使用(四)---------图像存储_Hersiman的博客-CSDN博客
好啦,不说废话了,直接上代码:
//裁剪照片方法
private void cropPic(Uri uri) {
// 调用系统中自带的图片剪裁
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
//注意:设备XY设定为1:1的时候展示框为圆形
intent.putExtra("aspectX", 2);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
// 返回裁剪后的数据
intent.putExtra("return-data", true);
startActivityForResult(intent, REQUEST_Crop_3);
}
同前文的图像旋转,这里进行的图像裁剪也是自定义方法与前端的按钮绑定来实现
这部分调用的系统裁剪页面,没有办法自定义裁剪页面的方式
首先声明一个intent是裁剪,之后设定intent输出和数据格式
注意:这里的putExtra实际上就是在启动该方法之后出现的初始裁剪框的比例(可以看到这里的XY轴设定为相同的时候即XY为1:1比例的时候裁剪框为圆形)
最后是返回数据设定以及返回result,这里的REQUEST_Crop_3是自定义的一个值,用于判别操作方法