How to crop Image in Android:
code fore when user click on cropping image :
case R.id.profileEditImage:
if (ContextCompat.checkSelfPermission(currentActivity, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(currentActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(currentActivity,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(currentActivity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
WRITE_EXTERNAL_PERMISSION_REQUEST);
ActivityCompat.requestPermissions(currentActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
WRITE_EXTERNAL_PERMISSION_REQUEST);
} else {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, PICK_PHOTO_REQUEST_CODE);
}
break;
case R.id.profileEditImage2:
if (ContextCompat.checkSelfPermission(currentActivity,
Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(currentActivity,
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
&& ContextCompat.checkSelfPermission(currentActivity, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(currentActivity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
WRITE_EXTERNAL_PERMISSION_REQUEST);
ActivityCompat.requestPermissions(currentActivity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
WRITE_EXTERNAL_PERMISSION_REQUEST);
} else {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, PICK_PHOTO_REQUEST_CODEE);
}
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == Activity.RESULT_OK && requestCode == PICK_PHOTO_REQUEST_CODE) {
mImageUri = intent.getData();
try {
CropImage.activity(mImageUri)
.setGuidelines(CropImageView.Guidelines.ON_TOUCH)
.setAspectRatio(1, 1)
.setFixAspectRatio(true)
.setScaleType(CropImageView.ScaleType.CENTER_INSIDE)
.setRequestedSize(650, 650)
.setMinCropResultSize(650, 650)
.setActivityTitle("Profile Image")
.setAllowFlipping(true)
.start(this);
isProfileImage = true;
} catch (Exception e) {
e.printStackTrace();
}
}
if (resultCode == Activity.RESULT_OK && requestCode == PICK_PHOTO_REQUEST_CODEE) {
mImageUrii = intent.getData();
try {
CropImage.activity(mImageUrii)
.setGuidelines(CropImageView.Guidelines.ON_TOUCH)
.setAspectRatio(2, 1)
.setMinCropResultSize(490, 245)
.setScaleType(CropImageView.ScaleType.CENTER_INSIDE)
.setActivityTitle("Meta Image")
.setAllowFlipping(true)
.start(this);
} catch (Exception e) {
e.printStackTrace();
}
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(intent);
if (resultCode == RESULT_OK) {
if (isProfileImage) {
mImageUri = result.getUri();
blogAuthorProfileImageView.setImageURI(mImageUri);
filePath = mImageUri.toString();
isProfileImage = false;
callApi();
} else {
mImageUrii = result.getUri();
blogAuthorProfileImageView2.setImageURI(mImageUrii);
filePath1 = mImageUrii.toString();
callApii();
}
} else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception e = result.getError();
Toast.makeText(this, "Possible error is :" + e, Toast.LENGTH_SHORT).show();
}
}
}