当想要拍摄照片,裁剪并将图像保存在Android应用程序中时,我在Java中使用以下意图......
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);
上述意图效果很好,但我的Y和X总是相等的。我打算分解代码,找出指定的内容,这样我就可以为我拍摄的图像制作可定制的 - 最重要的是独立的 - X和Y值...
答案 0 :(得分:5)
注意: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);
所以将aspect设置为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);