2

浏览了几篇关于配置和方向更改的帖子和线程,但我仍然没有被清除。

仅在从to或to更改onConfigurationChanged时才被调用(顾名思义),但是有没有办法通过任何 api 级别的任何种类的列表器来监听或方向更改。orientationlandscapeportraitportraitlandscapereverseLandscapereversePortrait

或者是否有可能听到rotation类似的变化onConfigurationChanged??

任何帮助将不胜感激!

4

2 回答 2

1

您可以通过调用来检索 4 个方向中的哪一个当前处于活动状态

getWindowManager().getDefaultDisplay().getRotation();

portrait知道何时调用它可能很棘手,因为例如,如果您直接从到,系统不会通知您reversePortrait。实现这一目标的唯一方法是使用设备的传感器。Android 开发者博客中的这篇文章应该对您有所帮助。

于 2013-03-16T11:32:52.327 回答
1

您可以使用加速度计和磁场传感器来计算设备旋转,然后调用

getWindowManager().getDefaultDisplay().getRotation();  

当旋转处于某个值时。计算旋转的方法是在我的回答如何使用 Android 中的加速度计测量手机在 XY 平面中的倾斜度

于 2013-03-16T21:43:29.530 回答