安卓图片裁剪之Android-Image-Cropper简单使用

图片裁剪是一个相对用的比较多的功能。正好近期用到了。

于是在最新的ChatGPT上询问了一番。。两次询问,得到的最优推荐依然是:Android-Image-Cropper。经过一番研究使用。。确实简单好用。直接看代码:

首先,你需要引入依赖:

dependencies {
    api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
}

其次,你需要添加手机内存访问权限以用来访问相册

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

再然后,是使用,使用的话分为Activity和View两种弄方式。换言之,就是可以直接集成或者定制使用。当然,每一个都很简单。

1、直接使用 ( 直接跳转至内置Activity)

//	启动取景器获取用于裁剪的图像,然后在裁剪Activity中使用该图像
CropImage.activity()
  .setGuidelines(CropImageView.Guidelines.ON)
  .start(this);

//选择手机相册图片以裁剪
CropImage.activity(imageUri)
 .start(this);

//	for Fragment(请勿是使用getActivity() )
CropImage.activity()
  .start(getContext(), this);

还需要在启动的Activity中复写onActivityResult以获得裁剪结果

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
    CropImage.ActivityResult result = CropImage.getActivityResult(data);
    if (resultCode == RESULT_OK) {
      Uri resultUri = result.getUri();
    } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
      Exception error = result.getError();
    }
  }
}

当然,如果你要使用这个Activity,就要为他注册。

<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
  android:theme="@style/Base.Theme.AppCompat"/> 

<!-- optional (needed if default theme has no action bar) -->

2、如果你要定制页面

首先要在xml中引入

<com.theartofdev.edmodo.cropper.CropImageView
  xmlns:custom="http://schemas.android.com/apk/res-auto"
  android:id="@+id/cropImageView"
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_weight="1"/>

然后Activity中的使用如下:

//把选择的图片传至view

cropImageView.setImageUriAsync(uri);
// 为了性能和更好的用户体验,更倾向于使用uri
cropImageView.setImageBitmap(bitmap);

获取裁剪后的图像

// subscribe to async event using cropImageView.setOnCropImageCompleteListener(listener)

cropImageView.getCroppedImageAsync();
// or
Bitmap cropped = cropImageView.getCroppedImage();

如果需要旋转图片

//xx为每次顺时针旋转度数
.rotateImage(xx)

最后,如果你的代码需要混淆:
将此行添加到你的 Proguard 配置文件中

-keep class androidx.appcompat.widget.** { *; }

最后的最后,如果你需要获得最新的依赖版本或者更多的功能支持。请查阅 GitHub

END

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android Image Cropper 是一个开源的图片裁剪框架,它可以让你在 Android 应用中实现图片裁剪功能。使用 Android Image Cropper,你可以让用户在任何地方选择一张图片并对其进行裁剪。该框架支持手势缩放、旋转、裁剪框大小调整等功能。 Android Image Cropper 的主要功能如下: - 矩形和圆形裁剪框 - 支持手势缩放、旋转、裁剪框大小调整 - 支持设置裁剪框宽高比、最大最小裁剪框大小、裁剪结果大小等 - 支持设置裁剪结果压缩质量、格式等 - 支持自定义裁剪界面 下面是使用 Android Image Cropper 的基本步骤: 1. 在 build.gradle 文件中添加以下依赖项: ``` implementation 'com.github.yalantis:ucrop:2.2.6' ``` 2. 在你的Activity中,启动裁剪界面: ``` // 从相册中选择一张图片进行裁剪 UCrop.of(sourceUri, destinationUri) .withAspectRatio(16, 9) .withMaxResultSize(maxWidth, maxHeight) .start(this); // 或者从相机中拍照裁剪 UCrop.of(sourceUri, destinationUri) .withAspectRatio(16, 9) .withMaxResultSize(maxWidth, maxHeight) .start(this); ``` 3. 在 onActivityResult() 方法中获取裁剪结果: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == UCrop.REQUEST_CROP && resultCode == RESULT_OK) { final Uri resultUri = UCrop.getOutput(data); // 处理裁剪结果 } else if (resultCode == UCrop.RESULT_ERROR) { final Throwable cropError = UCrop.getError(data); // 处理裁剪错误 } } ``` 希望这些信息能够帮助你快速了解 Android Image Cropper。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值