Please try this, I know it too late, but it can help someone.
private void performCrop() { try { //call the standard crop action intent (the user device may not support it) Intent cropIntent = new Intent("com.android.camera.action.CROP"); //indicate image type and Uri cropIntent.setDataAndType(mImageCaptureUri, "image/*"); //set crop properties cropIntent.putExtra("crop", "true"); //indicate aspect of desired crop cropIntent.putExtra("aspectX", 4); cropIntent.putExtra("aspectY", 3); //indicate output X and Y cropIntent.putExtra("outputX", 800); cropIntent.putExtra("outputY", 800); File f = new File(Environment.getExternalStorageDirectory(), "/temporary_holder.jpg"); try { f.createNewFile(); } catch (IOException ex) { Log.e("io", ex.getMessage()); } uri = Uri.fromFile(f); cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri); startActivityForResult(cropIntent, PIC_CROP); } //respond to users whose devices do not support the crop action catch (ActivityNotFoundException anfe) { //display an error message String errorMessage = "Your device doesn't support the crop action!"; Toast toast = Toast.makeText(this, errorMessage, Toast.LENGTH_SHORT); toast.show(); } }
Make your onActivityResult as follows: -
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PIC_CROP) { String filePath = Environment.getExternalStorageDirectory() + "/temporary_holder.jpg"; thumbnail = BitmapFactory.decodeFile(filePath);
source share