当想要在 Android 应用程序中拍照、裁剪和保存图像时,我在 Java 中使用以下 Intent ...
Intent camera=new Intent();
camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
camera.putExtra("crop", "true");
camera.putExtra("outputX",600);
camera.putExtra("outputY", 600);
camera.putExtra("aspectX", 1);
camera.putExtra("aspectY", 1);
camera.putExtra("scale", true);
camera.putExtra("return-data", false);
上述 Intent 非常有效,但是我的 Y 和 X 始终相等。我希望分解代码以找出指定此内容的内容,以便我可以为我拍摄并希望裁剪的图像制作可定制的(最重要的是独立的)X 和 Y 值...
最佳答案
注意:不建议使用 camera.putExtra("crop", "true");
... 有关详细信息,请参阅上面的评论...不过,方面部分确实解决了我的问题!
Intent camera=new Intent();
/** This specifies the action for this intent when it is called. */
camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
/** This says yes we can crop the image. */
camera.putExtra("crop", "true");
/** These provide the initial dimensions for X and Y. */
camera.putExtra("outputX",600);
camera.putExtra("outputY", 600);
/** These provide the relative aspects. */
camera.putExtra("aspectX", 1);
camera.putExtra("aspectY", 1);
/** These I am unsure about. */
camera.putExtra("scale", true);
camera.putExtra("return-data", false);
因此,通过将方面设置为 0 而不是 1,
/** These provide the relative aspects. */
camera.putExtra("aspectX", 0);
camera.putExtra("aspectY", 0);
他们变得彼此独立......
问题解决了!
最终代码
Intent camera=new Intent();
camera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
camera.putExtra("crop", "true");
camera.putExtra("outputX",600);
camera.putExtra("outputY", 600);
camera.putExtra("aspectX", 0);
camera.putExtra("aspectY", 0);
camera.putExtra("scale", true);
camera.putExtra("return-data", false);
关于android - Android代码Camera Intent+裁剪图像说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551074/