Android 在 samsung s4 上发布裁剪图像

Android issue crop image on samsung s4

我正在尝试让裁剪图像在 Samsung s4 上工作,但它没有显示裁剪屏幕。

这是我正在使用的代码。

 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 是拍摄图像。 您需要先捕获图像,然后在其上应用裁剪。 你可以这样做。

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 获取捕获的图像。在上面应用裁剪。

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

    }
}