android 上传头像 剪裁 设置圆形剪裁框
时间: 2023-12-02 16:02:05 浏览: 160
jQuery图片上传头像剪裁特效
要实现在Android中上传头像并进行剪裁,可以使用以下步骤:
1. 添加依赖项:在app的build.gradle文件中添加以下依赖项:
```
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
```
2. 创建一个ImageView,用于显示用户选择的图片。
3. 创建一个Button,用于触发选择图片的操作。
4. 在Button的onClick方法中,打开图片选择器,让用户选择需要上传的图片。可以使用以下代码:
```java
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_IMAGE_PICKER);
```
其中,REQUEST_IMAGE_PICKER是一个自定义的int值,用于标识选择器返回的结果。
5. 在Activity的onActivityResult方法中,获取用户选择的图片,并打开剪裁界面。可以使用以下代码:
```java
if (requestCode == REQUEST_IMAGE_PICKER && resultCode == RESULT_OK) {
Uri imageUri = data.getData();
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON)
.setCropShape(CropImageView.CropShape.OVAL)
.setFixAspectRatio(true)
.start(this);
}
```
其中,CropImage是从依赖项中引入的类,通过调用.activity方法打开剪裁界面。setGuidelines方法用于显示剪裁框,setCropShape方法设置剪裁框的形状,setFixAspectRatio方法设置剪裁框的宽高比。
6. 在Activity的onActivityResult方法中,获取剪裁后的图片,并显示在ImageView中。可以使用以下代码:
```java
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri croppedImageUri = result.getUri();
imageView.setImageURI(croppedImageUri);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
// Handle crop error
}
}
```
以上就是在Android中上传头像并进行剪裁的步骤,其中使用了开源库android-image-cropper来实现剪裁功能。
阅读全文