作用: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中发现这篇帖子,作者把几个问题阐述的淋漓尽致,轮不着我说什么了,于是收藏之。
网友评论