Android 以编程方式设置多方向
Android set multiple orientation programmatically
我尝试以编程方式设置多方向。例如我想屏幕方向可以是纵向、反向纵向和反向横向。
我尝试使用此代码,但它似乎不起作用。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
编辑
setRequestedOrientation 方法适用于最新方向。我只是想找到一种方法来设置两个方向。
您应该根据配置更改设置请求的方向
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if...
}
如果你想同时支持纵向和反向纵向,请使用 SCREEN_ORIENTATION_SENSOR_PORTRAIT
(更多 info)。
另一个有用的 link.
已编辑:
我没有看到在新配置时需要同时请求横向和纵向的情况,例如横向,但您可以尝试 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
我尝试以编程方式设置多方向。例如我想屏幕方向可以是纵向、反向纵向和反向横向。
我尝试使用此代码,但它似乎不起作用。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
编辑
setRequestedOrientation 方法适用于最新方向。我只是想找到一种方法来设置两个方向。
您应该根据配置更改设置请求的方向
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if...
}
如果你想同时支持纵向和反向纵向,请使用 SCREEN_ORIENTATION_SENSOR_PORTRAIT
(更多 info)。
另一个有用的 link.
已编辑:
我没有看到在新配置时需要同时请求横向和纵向的情况,例如横向,但您可以尝试 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);