我最新的(也是第一个)android 应用程序让用户可以在首选项中选择将屏幕固定为纵向或横向,或者让传感器确定方向。为了对用户的偏好做出反应,我有类似的东西
public static void setOrientation(Activity a,int orientation) {
switch (orientation) {
case (1): {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
break;
}
case (2): {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
case (3): {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
}
}
}
我在 onCreate/onRestart 调用以相应地设置方向。
我现在面临的问题是,当用户从一个活动切换到下一个活动(选择固定方向)时,有时屏幕仍会根据传感器定向一秒钟,然后屏幕会按照请求的方向进行定向. 当用户选择固定方向时,有没有办法完全关闭传感器。我试图添加
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
但到目前为止还没有成功。我很确定我监督了一些明显的事情,任何关于如何动态实现方向固定的启示都将受到高度赞赏。
非常感谢
马丁
编辑:
我在一个新帖子中重新表述了这个问题: