Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android本机摄像头应用程序自拍定向问题_Android_Camera_Android Camera_Android Orientation_Android Camera Intent - Fatal编程技术网

Android本机摄像头应用程序自拍定向问题

Android本机摄像头应用程序自拍定向问题,android,camera,android-camera,android-orientation,android-camera-intent,Android,Camera,Android Camera,Android Orientation,Android Camera Intent,遵循Android文档编写代码,通过intent: 问题:我正在使用android本机相机应用程序从我的应用程序拍照,并通过上述链接(MediaStore.ACTION\u IMAGE\u CAPTURE)中提到的意图启动,相机已成功启动。当我点击本机应用的相机按钮拍照时,图像预览会在自拍时镜像(左图显示右),自拍用户会讨厌,因为图像预览不是他所点击的。 第二个-单击图像后,它将显示图像预览,并等待用户输入以接受或拒绝图片。 接受图像后,OnStartActivityResult(如上链接中所

遵循Android文档编写代码,通过intent:

问题:我正在使用android本机相机应用程序从我的应用程序拍照,并通过上述链接(MediaStore.ACTION\u IMAGE\u CAPTURE)中提到的意图启动,相机已成功启动。当我点击本机应用的相机按钮拍照时,图像预览会在自拍时镜像(左图显示右),自拍用户会讨厌,因为图像预览不是他所点击的。
第二个-单击图像后,它将显示图像预览,并等待用户输入以接受或拒绝图片。
接受图像后,OnStartActivityResult(如上链接中所述)函数将接收调用并将图像保存到gallery。奇怪的是:图像被翻转180度然后保存,这是一种非常奇怪的行为。
最后,这里有两个问题:用户批准前的图像预览微影问题和保存图像时的反转问题(180度反转)。

设备:三星A6 Edge
Android:5.1
清单文件中的摄像头:Android.hardware.camera2,因为摄像头已被弃用 请告知我如何解决上述两个问题

另外-我还有一个疑问:我应该使用android原生摄像头应用程序还是使用摄像头框架编写代码并启动定制摄像头?我的要求只是点击图片和显示预览,并保存正确的方向。在搜索了很多之后,我怀疑——原生摄像头应用程序能否解决这些问题?但是你的专家建议可以在这方面有所帮助

我们非常感谢您在这方面提供的任何快速支持和指导。提前谢谢! 代码如下:

public void triggerCamera() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File imagePath = AppPhotoHelper.getOutputMediaFile();

    // Continue only if the File was successfully created
    if (imagePath != null) {
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(imagePath));
        takePictureIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        this.setImagePath(imagePath);
        this.startActivityForResult(takePictureIntent, CAMERA_PIC_REQUEST);
    }
}
onActivityResult函数:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
        if (resultCode == RESULT_OK ) {
           //AppPhotoHelper is my class to show image in gallery
            AppPhotoHelper.displayInGallery(this.getImagePath(), this);
            //Image captured and stored in gallery ... camera invoked for next shot after doing some business processing
            this.triggerCamera();
        }
        else if (resultCode == RESULT_CANCELED) {
            return;
        }
        else {
            return;
        }
    }

}
如我的中所述,本机摄像头应用程序因设备而异。您是否使用其他设备或模拟器尝试了代码?我发布了一个解决许多问题的解决方案,包括各种设备的图像方向。请随意查看,在您的设备上运行示例代码,并检查它是否适合您的用例