AndroidManifest的screenOrientation详解

作用:screenOrientation用于控制Activity启动时方向

相关值:

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

注意

遇到一个奇葩的问题,我在使用onConfigChanged拦截屏幕的横竖屏旋转时,发现直接进行180度的横屏/竖屏转换居然没有反应!查找原因发现仅对landscape或者portrait状态有用,而同属于landscape的reverse_landscape并不受影响。那么问题怎么破呢?刚开始想到了用Sensor的状态来监听当前屏幕状态,可是发现针对加速度传感器或者陀螺仪的参数来进行判断太麻烦,这样效率一点不高,无意Google中发现这篇帖子,作者把几个问题阐述的淋漓尽致,轮不着我说什么了,于是收藏之。

更多关于AndroidManifest介绍(以上文字摘自以下文章)

AndroidManifest.xml 最全详解
AndroidManifest.xml 最全详解一一

你可能感兴趣的:(AndroidManifest的screenOrientation详解)