Jelly Bean 4.3(API 18)添加了几个新的screenOrientation值。
http://developer.android.com/reference/android/R.attr.html#screenOrientation
http://developer.android.com/reference/android/content/pm/ActivityInfo.html#SCREEN_ORIENTATION_BEHIND
我首先假设:"定向"one_answers"旋转"之间有区别吗?还是文档只是使用了不一致的措辞?
然后:
未指定
没有指定偏好:让系统决定最佳方向。这将是下面活动选择的方向,或者是用户的首选方向(如果此活动是任务的底部)。如果用户通过设置明确关闭了基于传感器的定向,则将忽略基于传感器的设备旋转。如果不是,默认情况下将考虑基于传感器的方向,并且方向将根据用户如何旋转设备而改变。对应于SCREEN_ORIENTATION_UNSPECIFIED。
用户
使用用户当前首选的手持设备方向。对应于SCREEN_ORIENTATION_USER。
全用户(新)
尊重用户基于传感器的旋转偏好,但如果启用了基于传感器的转动,则允许屏幕在所有4个可能的方向上转动,而不管设备通常会做什么(例如,一些设备通常不会使用180度转动)。对应于SCREEN_ORIENTATION_FULL_USER。
有什么区别?在目前的实践中,我相信setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
是告诉活动基于传感器旋转的方法,如果在系统范围内启用了旋转。那么fulluser
有什么不同呢?
同样,
前端传感器
始终忽略由方向传感器确定的方向:当用户移动设备时,显示器不会旋转。对应于SCREEN_ORIENTATION_NOSENSOR。
锁定(新)
屏幕被锁定到其当前旋转,无论是什么。对应于Screen_ORIENTATION_locked。
有什么不同吗?
";方位;以及";旋转";?或者文件只是使用了不一致的措辞?
尽管您将Orientation
和Rotation
视为同义词(我认为包括我在内的大多数人也是如此),但它们的区别在于各自的定义。Orientation
给你两个选择,Rotation
给你四个选择。额外的两个选项将用于什么用途?这将取决于你。
假设你想出了一个方便的应用程序,其中包括一个闹钟、一个计算器、一个天气信息器和一个货币转换器。您可以为每个视图指定不同的旋转,并允许用户通过旋转设备在四个视图之间导航。
另一个(虚构的)例子可以是基于旋转角度显示不同小部件组的主屏幕。
我尝试了一些screenOrientation
选项,这就是我发现的:
fullUser:停留在默认的0度旋转。
user:允许的旋转值为0、90和270。
fullSensor:允许所有4个旋转值。
未指定:与
user
设置的行为相同锁定和前传感器:卡在0度旋转
正如您从测试中看到的,对于每个screenOrientation
值的作用,并没有太多的说明。不知道为什么我不能重现资源页面上定义的效果。
fullUser:启用自动旋转时允许的旋转值为0、90、180和270,否则为默认值。
user:启用自动旋转时允许的旋转值为0、90和270,否则为默认值。但在一些平板电脑上,它也允许有4个方向。。。
@Vikram当你用fullUser只获得0度时,我猜你正在使用一个设备apilevel<18.)