Android:如何坚持活动开始时的方向
我知道如何将活动锁定在特定方向(在AndroidManifest.xml中): 我知道如何以编程方式锁定特定方向:Android:如何坚持活动开始时的方向,android,android-activity,Android,Android Activity,我知道如何将活动锁定在特定方向(在AndroidManifest.xml中): 我知道如何以编程方式锁定特定方向: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 但是,如何将活动锁定到从开始的方向?e、 如果它是从肖像开始的,它应该坚持这样做 谢谢 在应用程序启动时使用getResources().getConfiguration().orientation,然后像上面那样通过编程设置方向。该方法将返回ORI
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
但是,如何将活动锁定到从开始的方向?e、 如果它是从肖像开始的,它应该坚持这样做
谢谢 在应用程序启动时使用getResources().getConfiguration().orientation
,然后像上面那样通过编程设置方向。该方法将返回ORIENTATION\u横向
或ORIENTATION\u纵向
我就是这样做的:
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation"
在清单中的活动中找到了一个解决方案:
switch (((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay().getRotation()) {
case Surface.ROTATION_90:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Surface.ROTATION_180:
setRequestedOrientation(9/* reversePortait */);
break;
case Surface.ROTATION_270:
setRequestedOrientation(8/* reverseLandscape */);
break;
default :
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
找到了。你的意思是如果用户在纵向模式下握住手机,应用程序应该在纵向模式下启动吗?我想它已经默认了…我也面临同样的问题。请给我一个解决方案。这几乎完成了,问题是有两种情况:屏幕方向和屏幕方向。肖像也一样。因此,由于
getResources().getConfiguration().orientation
只返回纵向或横向(而不是反向),我可能会弄错。这不好:方向总是纵向的。我希望它坚持活动开始的方向,可能是横向的。
switch (((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay().getRotation()) {
case Surface.ROTATION_90:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Surface.ROTATION_180:
setRequestedOrientation(9/* reversePortait */);
break;
case Surface.ROTATION_270:
setRequestedOrientation(8/* reverseLandscape */);
break;
default :
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}