AI智能
改变未来

Android横竖屏屏幕方向设置

通常在代码里可以直接设置屏幕的方向,大致如下:

设置为横屏:

private void setHorizontalScreen(Activity activity) {if (activity.getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}}

ActivityInfo查阅表

参数 功能
SCREEN_ORIENTATION_BEHIND 继承Activity堆栈中当前Activity下面的那个Activity的方向
SCREEN_ORIENTATION_FULL_SENSOR 由重力传感器决定0/90/180/270°
SCREEN_ORIENTATION_LANDSCAPE 始终横屏
SCREEN_ORIENTATION_PORTRAIT 始终竖屏
SCREEN_ORIENTATION_LOCKED 锁定屏幕方向
SCREEN_ORIENTATION_NOSENSOR 关闭重力传感器对横/竖屏的影响
SCREEN_ORIENTATION_REVERSE_LANDSCAPE 另一个方向的横屏
SCREEN_ORIENTATION_REVERSE_PORTRAIT 另一个方向的竖屏
SCREEN_ORIENTATION_SENSOR 重力传感器影响屏幕的方向0/90/270°
SCREEN_ORIENTATION_SENSOR_LANDSCAPE 始终横屏,由重力传感器决定是哪个方向的横屏
SCREEN_ORIENTATION_SENSOR_PORTRAIT 始终竖屏,由重力传感器决定是哪个方向的竖屏
SCREEN_ORIENTATION_UNSPECIFIED 不指定方向,使用默认方向
SCREEN_ORIENTATION_USER 由用户和重力传感器共同决定,详见文本末端
SCREEN_ORIENTATION_USER_LANDSCAPE 用户和重力传感器共同决定是哪个方向的横屏
SCREEN_ORIENTATION_USER_PORTRAIT 用户和重力传感器共同决定是哪个方向的竖屏
UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW 当屏幕较窄时导航栏有一部分会显示在底部

除了代码,还可以在标签android:screenOrientationActivity 中设置显示方向。

设置为横屏:

<activity android:name=\".MainActivity\" android:screenOrientation=\"landscape\">

注意:如果 Activity 是在多窗口模式下运行,系统会忽略该属性。

screenOrientation查阅表

含义
unspecified 默认值。由系统选择方向。在不同设备上,系统使用的政策以及基于政策在特定上下文所做的选择可能有所差异。
behind 与 Activity 栈中紧接着它的 Activity 的方向相同。
landscape 横向方向(显示的宽度大于高度)。
portrait 纵向方向(显示的高度大于宽度)。
reverseLandscape 与正常横向方向相反的横向方向。API 级别 9 中的新增配置。
reversePortrait 与正常纵向方向相反的纵向方向。API 级别 9 中的新增配置。
sensorLandscape 横向方向,但根据设备传感器,可以是正常或反向的横向方向。API 级别 9 中的新增配置。
sensorPortrait 纵向方向,但根据设备传感器,可以是正常或反向的纵向方向。API 级别 9 中的新增配置。
userLandscape 横向方向,但根据设备传感器和用户的传感器首选项,可以是正常或反向的横向方向。 如果用户锁定了基于传感器的旋转,其行为与 landscape 相同,否则,其行为与 sensorLandscape 相同。API 级别 18 中的新增配置。
userPortrait 纵向方向,但根据设备传感器和用户的传感器首选项,可以是正常或反向的纵向方向。 如果用户锁定了基于传感器的旋转,其行为与 portrait 相同,否则,其行为与 sensorPortrait 相同。API 级别 18 中的新增配置。
sensor 方向由设备方向传感器决定。显示方向取决于用户如何手持设备,它会在用户旋转设备时发生变化。 但一些设备默认情况下不会旋转到所有四种可能的方向。要允许全部四种方向,请使用 “fullSensor”。
fullSensor 方向由 4 种方向中任一方向的设备方向传感器决定。这与 “sensor” 类似,不同的是它允许所有 4 种可能的屏幕方向,无论设备正常情况下采用什么方向(例如,一些设备正常情况下不使用反向纵向或反向横向,但它支持这些方向)。 API 级别 9 中的新增配置。
nosensor 决定方向时不考虑物理方向传感器。传感器会被忽略,因此显示不会随用户对设备的移动而旋转。 除了这个区别,系统在选择方向时使用的政策与“unspecified”设置相同。
user 用户当前的首选方向。
fullUser 如果用户锁定了基于传感器的旋转,其行为与 user 相同,否则,其行为与 fullSensor 相同,允许所有 4 种可能的屏幕方向。 API 级别 18 中的新增配置。
locked 将方向锁定在其当前的任意旋转方向。API 级别 18 中的新增配置。

———转载请附上本文链接———

多多交流相互学习

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Android横竖屏屏幕方向设置