2015-02-09 49 views
0

我试图让三星s4上的裁剪图像工作,但它不显示裁剪屏幕。Android在三星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(); 
    } 
} 

回答

1

您使用的意图是用于捕获图像。 您需要先捕捉图像,然后在其上应用裁剪。 哟可以这样做。

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

    } 
} 
+0

非常感谢。它解决了我的问题:) – dogwasstar 2015-02-10 04:51:13

+0

我的荣幸:)。你可以接受这个答案。 – justDroid 2015-02-10 05:26:28