dogwasstar
dogwasstar

Reputation: 881

Android issue crop image on samsung s4

I'm trying to get crop image working on Samsung s4 but it's not showing the crop screen.

This is the code that I'm using.

 private void openCamera() {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
    // ******** code for crop image
    intent.setType("image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", 3);
    intent.putExtra("aspectY", 4);
    intent.putExtra("outputX", 180);
    intent.putExtra("outputY", 220);

    try {

        intent.putExtra("return-data", true);
        startActivityForResult(intent, 1);

    } catch (ActivityNotFoundException e) {
        // Do nothing for now
        String s = e.getMessage();
        String test = e.getLocalizedMessage();
    }
}

Upvotes: 0

Views: 309

Answers (1)

justDroid
justDroid

Reputation: 351

Intent which you are using is for capturing image. You need to first capture image and then apply crop on it. Yo can do like this.

private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

intent.putExtra(MediaStore.EXTRA_OUTPUT,
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());

try {

    intent.putExtra("return-data", true);
    startActivityForResult(intent, 1);

} 
catch (ActivityNotFoundException e) {
    // Do nothing for now
        }
}

onActivityResult where you get captured image. apply crop on that.

private void performCrop() {
    try {
        Intent cropIntent = new Intent("com.android.camera.action.CROP");           cropIntent.setDataAndType(mUri, "image/*");
        // set crop properties
        cropIntent.putExtra("crop", "true");
        // indicate aspect of desired crop
        cropIntent.putExtra("aspectX", 1);
        cropIntent.putExtra("aspectY", 1);
        // indicate output X and Y
        cropIntent.putExtra("outputX", 150);
        cropIntent.putExtra("outputY", 150);
        // retrieve data on return
        cropIntent.putExtra("return-data", true);
        // start the activity - we handle returning in onActivityResult
        startActivityForResult(cropIntent, 12);
    }
    // respond to users whose devices do not support the crop action
    catch (ActivityNotFoundException anfe) {
        // display an error message
        String errorMessage = "Whoops - your device doesn't support the crop action!";
        Toast.makeText(Signature.this, errorMessage, Toast.LENGTH_SHORT)
                .show();

    }
}

Upvotes: 1

Related Questions