我想在我的应用中取消自动轮换视图。有很多针对此主题的帖子[1],所有帖子都提示设置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或
<activity android:name=".myActivity"
android:screenOrientation="portrait">
它完全符合我的需要,但阻止onConfigurationChanged()触发,这意味着我无法再跟踪手机的方向。 问题是:我需要在某个时候知道方向。
任何想法如何在不启用视图轮换的情况下获取手机的方向?
答案 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