Android自定义人像摄像头和图像方向

时间:2013-08-31 22:23:48

标签: android camera rotation

我正在编写一个自定义肖像相机,我遇到了一些图像方向问题。 在详细信息中,我需要始终将相机设置为纵向,并使用清单配置进行:

机器人:screenOrientation = “纵向”

我在应用程序中设置:

customCamera.setDisplayOrientation(90);

有效,因为当我旋转设备(90,180,270度)时,我可以看到(来自相机预览)正确的图像。

我不关心何时锁定(禁用)设备方向,但是当它启用时,似乎我没有得到任何方向更改。我总是使用代码获得0度:

getWindowManager().getDefaultDisplay().getRotation();

从技术上讲,我需要写入拍摄的照片(使用exif数据)0,1,3,6或8值。 所以,步骤是: 1)在自定义人像摄像头上设置正确的方向 - 完成! 2)预览正确的图片 - 完成! 3)如果设备方向已启用,则获取当前旋转(0.90,180,270度) 4)用正确的方向exif标签写入拍摄的图片。

我正在使用三星Galaxy I进行开发。

问题是:当应用程序始终显示自定义纵向摄像头时,如何才能获得设备方向,该摄像头永远不应旋转,但设备方向已启用?

谢谢你, 尼古拉斯

1 个答案:

答案 0 :(得分:0)

您可以使用OrientationEventListener

OrientationEventListener mOrientationListener = new OrientationEventListener(
            this, SensorManager.SENSOR_DELAY_NORMAL) {

        @Override
        public void onOrientationChanged(int orientation) {
        }

    };