首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取安卓设备的当前方向(ActivityInfo.SCREEN_ORIENTATION_*)?

如何获取安卓设备的当前方向(ActivityInfo.SCREEN_ORIENTATION_*)?
EN

Stack Overflow用户
提问于 2012-04-30 17:03:00
回答 7查看 58.9K关注 0票数 57

我想找出设备的详细方向,最好是来自ActivityInfoSCREEN_ORIENTATION_LANDSCAPESCREEN_ORIENTATION_PORTRAITSCREEN_ORIENTATION_REVERSE_LANDSCAPESCREEN_ORIENTATION_REVERSE_PORTRAIT或类似产品之一。

StackOverflow上的一些答案包括

getWindowManager().getDefaultDisplay().getRotation()

但这并不能真正告诉我设备是处于纵向模式还是横向模式,只会告诉我它是如何参考其自然位置转动的--而自然位置首先可以是横向或纵向的。

getResources().getConfiguration().orientation

返回以下三个参数之一:ORIENTATION_LANDSCAPEORIENTATION_PORTRAITORIENTATION_SQUARE,它不会告诉我手机是朝哪个方向转动的(它是上下颠倒还是朝哪个方向转动)。

我知道我可以将后者与DisplayMetrics结合使用来找出设备的自然方向,但真的没有更好的方法了吗?

EN

回答 7

Stack Overflow用户

发布于 2014-05-02 04:35:14

简单的方法是使用

getResources().getConfiguration().orientation

1表示纵向,2表示横向。

票数 21
EN

Stack Overflow用户

发布于 2013-03-25 19:32:01

public static int getScreenOrientation(Activity activity) {
        int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
        int orientation = activity.getResources().getConfiguration().orientation;
        if (orientation == Configuration.ORIENTATION_PORTRAIT) {
          if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_270) {
            return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
          } else {
            return ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
          }
        }
        if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
          if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_90) {
            return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
          } else {
            return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
          }
        }
        return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
      }
票数 16
EN

Stack Overflow用户

发布于 2012-04-30 17:10:42

getResources().getConfiguration().orientation是了解正在使用的电流方向的标准方法。但是,如果它不能满足您的需求,那么您可以使用传感器来计算角度。阅读thisthis

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10380989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档