android:如何取消方向更改

时间:2012-01-06 16:10:17

标签: android android-layout

我想在我的应用中取消自动轮换视图。有很多针对此主题的帖子[1],所有帖子都提示设置

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

 <activity android:name=".myActivity"                  
          android:screenOrientation="portrait">

它完全符合我的需要,但阻止onConfigurationChanged()触发,这意味着我无法再跟踪手机的方向。 问题是:我需要在某个时候知道方向。

任何想法如何在不启用视图轮换的情况下获取手机的方向?

[1] How do I disable orientation change on Android?

4 个答案:

答案 0 :(得分:2)

我建议使用OrientationEventListener吗? 我认为即使您在manifest.xml文件中设置方向,您仍会收到通知。

答案 1 :(得分:0)

如果您需要获取轮换使用Display#getRotation()

答案 2 :(得分:0)

如果你需要这些信息来旋转屏幕,你应该自己实现onConfigurationChanged。

如果您出于任何其他目的需要此信息,我认为您应该使用传感器(加速度计或指南针)

答案 3 :(得分:0)

正如你所说“事情是:我需要在某个时候知道方向。”

您可以随时查看方向

int orientation = getWindow().getWindowManager().getDefaultDisplay().getOrientation();
    if(orientation == 0){ //horizontal

    }else if(orientation == 1){ //vertical

    }

方向详情:http://developer.android.com/reference/android/R.attr.html#orientation