在日常的Android
开发当中,在上传头像的需求的时候,我们会遇到图片裁剪的需求。这里分享一个常见的图片裁剪库
——uCrop
。
uCrop
一个Android
常见的图片裁剪库。
导入项目
根build.gradle
项目加入:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
app
的build.gradle
加入,轻量级别:
implementation 'com.github.yalantis:ucrop:2.2.6'
完整的版本,会增加apk
大小大约1.5MB
:
implementation 'com.github.yalantis:ucrop:2.2.6-native'
截止我发布博客的时候,开源库的版本是2.2.6
。最新版本请看开源库的wiki
简单使用
1.在AndroidManifest.xml
将UCropActivity
加入:
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
2.uCrop
配置代码:
UCrop.of(sourceUri, destinationUri)
.withAspectRatio(16, 9)
.withMaxResultSize(maxWidth, maxHeight)
.start(context);
3.在页面的onActivityResult
获取处理结果:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
final Uri resultUri = UCrop.getOutput(data);
} else if (resultCode == UCrop.RESULT_ERROR) {
final Throwable cropError = UCrop.getError(data);
}
}
混淆代码
-dontwarn com.yalantis.ucrop**
-keep class com.yalantis.ucrop** { *; }
-keep interface com.yalantis.ucrop** { *; }