uCrop图片裁剪开源库使用总结

开源项目地址:https://github.com/Yalantis/uCrop

效果图:

这里写图片描述

配置uCrop裁剪参数

1.预设置裁剪框的尺寸:

1.1. 设置为何图片原始宽高比列一样

 uCrop = uCrop.useSourceImageAspectRatio();

1.2. 动态的设置图片的宽高比,这里设置为1:1

 uCrop = uCrop.withAspectRatio(1, 1);
2.设置裁剪出来图片的格式:
  UCrop.Options options = new UCrop.Options();
  //开始设置
  options.setCompressionFormat(Bitmap.CompressFormat.WEBP);
  or
  options.setCompressionFormat(Bitmap.CompressFormat.JPEG);
  or
  options.setCompressionFormat(Bitmap.CompressFormat.PNG);
  //结束设置
  uCrop.withOptions(options)
3.设置裁剪图片的质量(0到100):
  UCrop.Options options = new UCrop.Options();
  //开始设置
  options.setCompressionQuality(mSeekBarQuality.getProgress());
  //结束设置
  uCrop.withOptions(options)
4.设置裁剪图片的手势操作开关:
  UCrop.Options options = new UCrop.Options();
  //开始设置
  //一共三个参数,分别对应裁剪功能页面的“缩放”,“旋转”,“裁剪”界面,对应的传入NONE,就表示关闭了其手势操作,比如这里我关闭了缩放和旋转界面的手势,只留了裁剪页面的手势操作
  options.setAllowedGestures(UCropActivity.NONE, UCropActivity.NONE, UCropActivity.ALL);
  //结束设置
  uCrop.withOptions(options)
5.设置将被载入裁剪图片的最大尺寸:
  UCrop.Options options = new UCrop.Options();
  //开始设置
  //设置裁剪图片的最大尺寸
  options.setMaxBitmapSize(100);
  //结束设置
  uCrop.withOptions(options)
6.一些其他设置:
  UCrop.Options options = new UCrop.Options();
  //开始设置
  //设置最大缩放比例
  options.setMaxScaleMultiplier(5);
  //设置图片在切换比例时的动画
  options.setImageToCropBoundsAnimDuration(666);
  //设置裁剪窗口是否为椭圆
  options.setOvalDimmedLayer(true);
  //设置是否展示矩形裁剪框
  options.setShowCropFrame(false);
  //设置裁剪框横竖线的宽度
  options.setCropGridStrokeWidth(20);
  //设置裁剪框横竖线的颜色
  options.setCropGridColor(Color.GREEN);
  //设置竖线的数量
  options.setCropGridColumnCount(2);
  //设置横线的数量
  options.setCropGridRowCount(1);
  //结束设置
  uCrop.withOptions(options)

开始使用uCrop

//originUri--原始图片的Uri;
//mDestinationUri--目标裁剪的图片保存的Uri
mDestinationUri = Uri.fromFile(new File(getCacheDir(), "SampleCropImage.jpeg"));
UCrop uCrop = UCrop.of(originUri, mDestinationUri);
//开始设置
//在这里用刚才上面的参数设置api自定义一些属性
//结束设置
uCrop.start(SampleActivity.this);
另外,需要在AndroidManifest.xml中配置一下:
 <activity
     android:name="com.yalantis.ucrop.UCropActivity"
     android:screenOrientation="portrait"/>

uCrop裁剪结果获取

 @Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
          if (requestCode == UCrop.REQUEST_CROP) {
                final Uri resultUri = UCrop.getOutput(result);
                if (resultUri != null) {
                  ResultActivity.startWithUri(SampleActivity.this,resultUri);
                } else {
                  Toast.makeText(SampleActivity.this,    R.string.toast_cannot_retrieve_cropped_image, Toast.LENGTH_SHORT).show();
        }
            }
        }
        if (resultCode == UCrop.RESULT_ERROR) {
            handleCropError(data);
        }
    }
  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值