1.方向
在manifest文件中通过android:screenOrientation
属性来设置,也可以在Activity中通过setRequestedOrientation(int requestedOrientation)
方法来设置,可以设置的值和含义如下表:
字段 | int值 | android:screenOrientation属性对应值 | 含义 |
---|---|---|---|
字段 | int值 | android:screenOrientation属性对应值 | 含义 |
ActivityInfo.SCREEN_ORIENTATION_UNSET | -2 | / | 该字段不向应用开放,表示没有设置指定方向 |
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED | -1 | android:screenOrientation="unspecified"默认值 | 由系统选择方向 |
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE | 0 | android:screenOrientation="landscape" | 屏幕方向为横向 |
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | 1 | android:screenOrientation="portrait" | 屏幕方向为纵向 |
ActivityInfo.SCREEN_ORIENTATION_USER | 2 | android:screenOrientation="user" | 用户当前的首选方向 |
ActivityInfo.SCREEN_ORIENTATION_BEHIND | 3 | android:screenOrientation="behind" | 与 Activity 栈中紧接其后的 Activity 的方向相同 |
ActivityInfo.SCREEN_ORIENTATION_SENSOR | 4 | android:screenOrientation="sensor" | 屏幕方向由设备方向传感器决定。显示方向取决于用户如何手持设备,它会在用户旋转设备时发生变化。但在默认情况下,一些设备不会旋转为所有四种可能的方向。如要支持所有这四种方向,请使用"fullSensor"。即使用户锁定基于传感器的旋转,系统仍可使用传感器 |
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR | 5 | android:screenOrientation="nosensor" | 确定屏幕方向时不考虑物理方向传感器。系统会忽略传感器,因此显示内容不会随用户手持设备的方向而旋转 |
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE | 6 | android:screenOrientation="sensorLandscape" | 屏幕方向为横向,但可根据设备传感器调整为正常或反向的横向。即使用户锁定基于传感器的旋转,系统仍可使用传感器 |
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT | 7 | android:screenOrientation="sensorPortrait" | 屏幕方向为纵向,但可根据设备传感器调整为正常或反向的纵向。即使用户锁定基于传感器的旋转,系统仍可使用传感器 |
ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE | 8 | android:screenOrientation="reverseLandscape" | 屏幕方向是与正常横向方向相反的横向 |
ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT | 9 | android:screenOrientation="reversePortrait" | 屏幕方向是与正常纵向方向相反的纵向 |
ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR | 10 | android:screenOrientation="fullSensor" | 屏幕方向由使用 4 种方向中任一方向的设备方向传感器决定。这与 "sensor" 类似,不同之处在于无论设备在正常情况下使用哪种方向,该值均支持所有 4 种可能的屏幕方向(例如,一些设备正常情况下不使用反向纵向或反向横向,但其支持这些方向) |
ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE | 11 | android:screenOrientation="userLandscape" | 屏幕方向为横向,但可根据设备传感器和用户首选项调整为正常或反向的横向 |
ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT | 12 | android:screenOrientation="userPortrait" | 屏幕方向为纵向,但可根据设备传感器和用户首选项调整为正常或反向的纵向 |
ActivityInfo.SCREEN_ORIENTATION_FULL_USER | 13 | android:screenOrientation="fullUser" | 如果用户锁定基于传感器的旋转,则其行为与 user 相同,否则,其行为与 fullSensor 相同,并且支持所有 4 种可能的屏幕方向。 |
ActivityInfo.SCREEN_ORIENTATION_LOCKED | 14 | android:screenOrientation="locked" | 将屏幕方向锁定为其当前的任意旋转方向。 |
详细内容可参考:Android开发者文档指南
2.角度
字段 | int值 | 含义 |
---|---|---|
Surface.ROTATION_0 | 0 | 默认自然方向,没有旋转 |
Surface.ROTATION_90 | 1 | 机头方向逆时针旋转90度 |
Surface.ROTATION_180 | 2 | 机头方向逆时针旋转180度 |
Surface.ROTATION_270 | 3 | 机头方向逆时针旋转270度 |