您的位置:首页 > 其它

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

2016-04-25 10:20 330 查看
跟屏幕相关的有两个级别的概念: 系统级别的重力感应开关和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方向;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: