Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检测屏幕旋转_Android_Screen Rotation - Fatal编程技术网

Android 如何检测屏幕旋转

Android 如何检测屏幕旋转,android,screen-rotation,Android,Screen Rotation,我有一个显示指南针的活动,我需要知道屏幕的方向以正确旋转指针。我需要区分90°和270°旋转以正确处理此问题 当我旋转屏幕(至少在我的Nexus S上)时,会调用活动的onCreate,例如,当我从纵向模式旋转到横向模式时。当我从一个横向模式旋转到另一个横向模式,顶部边缘升高时,onCreate()会被调用两次(一次用于纵向模式,一次用于目标横向模式) 但是,当底部边缘向上旋转时,屏幕会旋转180°,并且不会调用onCreate。在这种情况下是否有触发的事件 只要看一下,就可以得到关于如何使用加

我有一个显示指南针的活动,我需要知道屏幕的方向以正确旋转指针。我需要区分90°和270°旋转以正确处理此问题

当我旋转屏幕(至少在我的Nexus S上)时,会调用活动的
onCreate
,例如,当我从纵向模式旋转到横向模式时。当我从一个横向模式旋转到另一个横向模式,顶部边缘升高时,
onCreate()
会被调用两次(一次用于纵向模式,一次用于目标横向模式)

但是,当底部边缘向上旋转时,屏幕会旋转180°,并且不会调用
onCreate
。在这种情况下是否有触发的事件

只要看一下,就可以得到关于如何使用加速计获取最精确信息的最佳示例和说明。使用该API,您可以获得准确的旋转,而不是仅仅通过检测手机方向来进行操作,就像沥青和速度需求等赛车游戏一样。

看看跟踪方向变化并根据需要重新安排UI的方法


请参阅一些

您正确地认为,在180度旋转时,不会重新启动或更改配置,因为配置实际上没有更改。(它仍然是风景画或肖像画,其他一切都是一样的。)

但是,如果您正在显示指南针,则必须意味着您正在根据传感器事件更新指南针。因此,您可以在每次获得传感器更新时调用Display.getRotation(),以获取屏幕的当前旋转。事实上,您需要的是解释传感器事件的旋转(或者在屏幕上显示时如何修改它们的图形),而不仅仅是方向

我发现了一篇相关的博客文章

一定要读这本书


还可以查看有关使用Display.getRotation()正确重新映射传感器坐标的信息。

helper类可以很容易地获得关于旋转的回调。我建议您尝试一下。

正如Monchote所说,为了让您的指针在指南针上按预期旋转,最好将您的UI锁定为纵向或横向,并根据设备旋转角度更改指针角度,这可以很容易地从中获得


这样,无论用户是否打开自动旋转功能,您都可以收到旋转角度更改通知。”这是一个很好的例子供你参考

这对游戏来说很好,但这并不是处理常规应用程序轮换的标准方法。相反,Android应用程序应该订阅配置更改(如屏幕旋转)并相应地采取行动。很抱歉,我的问题有点混乱,这实际上是关于屏幕旋转事件,而不是传感器读数。Julio,在我的特殊情况下,此方法也有相同的缺陷,没有被调用:-(如果希望收到配置更改的通知,则需要修改清单。默认行为是完全拆除应用程序并重建它,这就是onCreate()的原因。)正在调用。通常,您希望保持这种方式。正确处理配置更改非常困难。由于在OP.hackbot描述的情况下未调用OnConfigurationChanged,因此被否决。感谢这为我指明了正确的方向。我现在正在检查每个传感器事件的屏幕旋转,并更新传感器a只要它改变,就对齐。这是可行的,但我想我现在正在连接不相关的东西:它可能(理论上)如果屏幕方向在没有传感器事件的情况下发生变化,但由于这只是一种理论上的可能性,我想这是目前最好的选择。谢谢!如果你的应用程序被锁定到一个UI布局方向,这真的很管用!你将它连接到哪里?