在ActivityInfo类的screenOrientationToString方法中发现很多的决定方向的参数:
@IntDef(prefix = { "SCREEN_ORIENTATION_" }, value = {
SCREEN_ORIENTATION_UNSET,
SCREEN_ORIENTATION_UNSPECIFIED,
SCREEN_ORIENTATION_LANDSCAPE,
SCREEN_ORIENTATION_PORTRAIT,
SCREEN_ORIENTATION_USER,
SCREEN_ORIENTATION_BEHIND,
SCREEN_ORIENTATION_SENSOR,
SCREEN_ORIENTATION_NOSENSOR,
SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
SCREEN_ORIENTATION_SENSOR_PORTRAIT,
SCREEN_ORIENTATION_REVERSE_LANDSCAPE,
SCREEN_ORIENTATION_REVERSE_PORTRAIT,
SCREEN_ORIENTATION_FULL_SENSOR,
SCREEN_ORIENTATION_USER_LANDSCAPE,
SCREEN_ORIENTATION_USER_PORTRAIT,
SCREEN_ORIENTATION_FULL_USER,
SCREEN_ORIENTATION_LOCKED
})
属性值 | 含义 |
---|---|
SCREEN_ORIENTATION_UNSET | |
SCREEN_ORIENTATION_UNSPECIFIED | 未指定,此为默认值,由Android系统自己选择适当的方向,选择策略视具体设备的配置情况而定,因此不同的设备会有不同的方向选择 |
SCREEN_ORIENTATION_LANDSCAPE | 强制横向横屏,显示的宽比高长(锁死为横屏方向,不再让方向感应起作用) |
SCREEN_ORIENTATION_PORTRAIT | 强制竖向横屏,显示的高比宽长(锁死为竖屏方向,不再让方向感应起作用) |
SCREEN_ORIENTATION_USER | 用户当前的首选方向 |
SCREEN_ORIENTATION_BEHIND | 继承Activity堆栈中当前Activity下面的那个Activity的方向,它跟Activity堆栈中的下面一个Activity的方向一致 |
SCREEN_ORIENTATION_SENSOR | 由设备的方向传感器决定,如果用户旋转设备,这屏幕就会横竖屏切换 |
SCREEN_ORIENTATION_NOSENSOR | 忽略物理方向传感器,这样就不会随着用户旋转设备而横竖屏切换了,不管用户如何旋转设备显示方向都不会随着改变("unspecified"设置除外)(有人说这里有个坑:如果用户横屏拿着手机进行播放,界面也是横屏的,一旦设置了这个属性之后,手机界面会先变换到竖屏,然后才会锁死方向传感器) |
SCREEN_ORIENTATION_SENSOR_LANDSCAPE | 根据方向传感器来切换正反向横屏,但是不会切换到竖屏 |
SCREEN_ORIENTATION_SENSOR_PORTRAIT | 根据方向传感器来切换正反向竖屏,不会切换到横屏 |
SCREEN_ORIENTATION_REVERSE_LANDSCAPE | 反向横屏,横屏分正向横屏(靠左手方向横屏)和反向横屏(靠右手方向横屏) |
SCREEN_ORIENTATION_REVERSE_PORTRAIT | 反向竖屏,和正常竖着拿手机相反 |
SCREEN_ORIENTATION_FULL_SENSOR | 由重力传感器决定0/90/180/270° |
SCREEN_ORIENTATION_USER_LANDSCAPE | 用户和重力传感器共同决定是哪个方向的横屏 |
SCREEN_ORIENTATION_USER_PORTRAIT | 用户和重力传感器共同决定是哪个方向的竖屏 |
SCREEN_ORIENTATION_FULL_USER | Activity的方向由方完全由用户来指定 |
SCREEN_ORIENTATION_LOCKED | 锁死用户当前屏幕,方向传感器不生效 |
网友评论