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
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值