Android screenOrientation API 18 - "nosensor" vs "locked" 和 "unspecified" vs "user" vs "fullUser"



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。

有什么不同吗?

";方位;以及";旋转";?或者文件只是使用了不一致的措辞?

尽管您将OrientationRotation视为同义词(我认为包括我在内的大多数人也是如此),但它们的区别在于各自的定义。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.)

最新更新