系统重力感应开关和Activity的屏幕方向属性值之间的区别


跟屏幕相关的有两个级别的概念: 系统级别的重力感应开关和Acitivty级别的方向属性值,之间有关联,但是又完全不同的两个概念。

1. 系统重力感应可以理解为重力感应开关

获取系统重力感应的开关状态:

int acceleromater_rotation= Settings.System.getInt(activity.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION); 

获得是否开启重力感应,0表示关闭,1表示开启

设置重力感应开关

Settings.System.putInt( activity.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0);

这是系统级别的设置,不同的手机叫法不一样,小米手机显示的是“方向锁定”,华为手机显示的是“自动旋转屏幕”。当这个开关关闭时,无论用户将手机如何旋转,系统的屏幕(体现为app的activity)都不会跟随手机旋转。也就是说Activity的onConfigurationChanged也不会被回调。


2.设置Activity的屏幕属性值

获取Activity当前屏幕方向的属性值:

getResources().getConfiguration().orientation

设置Activity的的屏幕方向属性值:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


Activity通过setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);来设定acvity的方向属性 setRequestedOrientation设置屏幕方向之后,比如说setRequestedOrientation(portrait)方法,就设定了屏幕方向是portrait,和在清单文件中配置Android:screenOrientation="portrait"是同等的效果;也即不再响应屏幕方向改变,只支持portrait方向;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值