来自getRotation的结果在Android中并不精确

时间:2013-07-19 02:18:45

标签: android android-camera android-orientation

Nexus 4。

我特意使用System.out.println在LogCat上打印旋转,以便在旋转设备时观察值。

int orientation_photo = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation();
System.out.println("For Debug: orientation_photo: " + orientation_photo);

旋转(0,1,2或4)根本不是精确的。有时候我旋转了90度,但旋转值没有变化。

然而,相信Nexus 4设备可以正确检测它,从其默认相机的方向性能,它始终记录正确的方向,以便我们可以正确的方式查看图片。

我需要一个正确的旋转值,这样我就可以放入照片.jpg文件的ExifInterface。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

您正在获取UI的方向,而不是手机本身的方向。由于各种原因,它们并不总是匹配。特别是,许多设备永远不会将其UI旋转180度。

您可能希望查看SensorManager课程:http://developer.android.com/reference/android/hardware/SensorManager.html

答案 1 :(得分:1)

我想我找到了答案,那就是:是的,从基本的物理原理来看,它并不准确,因为取向是主观的。