0

我正在编写自定义人像相机,但图像方向存在一些问题。详细地说,我需要相机始终处于纵向,并且它使用清单配置发生:

安卓: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 进行开发。

问题是:当应用程序始终显示自定义肖像相机时,我如何获得设备方向,该相机永远不应旋转,但启用了设备方向?

谢谢你,尼古拉斯

4

1 回答 1

0

您可以使用OrientationEventListener

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

        @Override
        public void onOrientationChanged(int orientation) {
        }

    };
于 2013-09-02T01:10:01.843 回答