简体   繁体   中英

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();
    }
}

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();

    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM