Android代码相机意图+裁剪图像的说明

Hen*_*den 2 android crop android-camera android-camera-intent resize-crop

想要拍摄照片,裁剪并将图像保存在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); 
Run Code Online (Sandbox Code Playgroud)

上述意图效果很好,但我的Y和X总是相等的.我打算分解代码,找出指定的内容,这样我就可以为我拍摄的图像制作可定制的 - 最重要的是独立的 - X和Y值...

Hen*_*den 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); 
Run Code Online (Sandbox Code Playgroud)

所以通过将方面设置为0而不是1,

            /** These provide the relative aspects. */
            camera.putExtra("aspectX", 0);
            camera.putExtra("aspectY", 0);
Run Code Online (Sandbox Code Playgroud)

他们彼此独立......

问题解决了 !

最终代码

            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); 
Run Code Online (Sandbox Code Playgroud)