【发布时间】:2015-01-20 08:56:02
【问题描述】:
我将清单中的活动方向设置为纵向。因为我不想让我的屏幕旋转。
但是在单击按钮时,我想在 Android 中获取当前设备方向(纵向或横向)?我不需要传感器的持续更新;只需单击按钮时的当前设备方向就足够了。
PS:设备方向是我握住设备的方式。请勿将其与屏幕方向混用。
这是我到目前为止所做的吗?
int PORT=1,LAND=2;
WindowManager windowService = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
int rotation = windowService.getDefaultDisplay().getRotation();
if (Surface.ROTATION_0 == rotation) {
rotation = PORT;
} else if(Surface.ROTATION_180 == rotation) {
rotation = PORT;
} else if(Surface.ROTATION_90 == rotation) {
rotation = LAND;
} else if(Surface.ROTATION_270 == rotation) {
rotation = LAND;
}
return rotation;
即使使用以下方法也无济于事
getResources().getConfiguration().orientation
它总是返回 1,因为我的活动默认设置为肖像。
示例/示例代码将不胜感激。
谢谢。
【问题讨论】:
-
stackoverflow.com/questions/2795833/… 花了我 10 秒。谷歌
-
巴特:嗯,我也经历过。但是当屏幕方向固定时它会失败。我想要按钮单击时的设备方向
-
您可以在 ActionListener 中为您的按钮运行代码
-
@Kushal,我看到了同样的行为,试图想出一个解决方案,因为我想知道为什么也会发生这种情况。所以很抱歉我的第一条评论,它似乎并没有真正解决你的问题
标签: android screen-orientation android-orientation device-orientation