【发布时间】:2013-02-12 15:32:26
【问题描述】:
这很容易与另一个问题重复,我只是在努力找出要搜索的内容。
我的相机应用被锁定为横向模式(在清单中),如下所示:
android:screenOrientation="landscape"
但是,当设备旋转为纵向时,我仍想旋转一些 UI 元素(尽管 android 仍会认为它是横向的,但这是故意的)。
所以我试过这个来检查方向
int rotation = this.getWindowManager().getDefaultDisplay()
.getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0:
Log.d("Rotation", "0");
break;
case Surface.ROTATION_90:
Log.d("Rotation", "90");
break;
case Surface.ROTATION_180:
Log.d("Rotation", "180");
break;
case Surface.ROTATION_270:
Log.d("Rotation", "270");
break;
}
不幸的是,无论我如何转动手机,它总是返回 90。是否有更强大的方法来获取方向,而不管 Android“认为”方向是什么?
【问题讨论】:
-
你什么时候检查方向?活动开始时?
-
我希望能够不断检查它,以便我可以立即响应更改。所以我检查了每个相机帧(至少现在是这样)
-
看看这个:stackoverflow.com/a/41104983/2267723 这个使用 SensorManager 的解决方案。