关于Android项目相机使用(五)-------图像裁剪

本文通过代码展示阐述在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是自定义的一个值,用于判别操作方法

你可能感兴趣的:(Android相机,android,java)