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

来源:互联网 发布:java写界面应用 编辑:程序博客网 时间:2024/06/09 19:01

开源项目地址: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--目标裁剪的图片保存的UrimDestinationUri = 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);        }    }
2 0