Integrating Android Image Cropper Library into Your Application
The Android Image Cropper library, available at GitHub, provides flexible image cropping capabilities.
Setup
Add the dependency to your build.gradle file:
implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.+'
Add the required permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Usage Approaches
Activity-based Cropping
- Register the cropping activity in
AndroidManifest.xml:
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"/>
- Launch the cropping activity with your image URI:
CropImage.activity(imageUri)
.setGuidelines(CropImageView.Guidelines.ON)
.start(this);
- Handle the result in
onActivityResult:
@Override
protected 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 croppedUri = result.getUri();
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
View-based Cropping
- Add the
CropImageViewdirectly to you're layout:
<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" />
- Load an image into the view:
cropImageView.setImageBitmap(bitmap);
// or
cropImageView.setImageUriAsync(uri);
- Retrieve the cropped image:
Bitmap cropped = cropImageView.getCroppedImage();
// or
cropImageView.setOnCropImageCompleteListener(listener);
cropImageView.getCroppedImageAsync();
For further details, refer to the official documentation on the GitHub project page.