【发布时间】:2015-10-07 04:09:56
【问题描述】:
我想通过实现 SensorEventListener 来检测设备屏幕方向,因为它的当前屏幕方向默认设置为纵向。我需要这样做,因为我的布局包括一些应该独立于其布局旋转的按钮,并且这样做的唯一方法(据我所知)是通过覆盖 onConfigurationChanged 并将相应的动画添加到每个屏幕方向。我不认为 OrientationEventListener 会起作用,因为设置的方向固定为纵向。那么如何从传感器本身检索屏幕方向或角度旋转?
【问题讨论】:
-
这不是我需要的。我需要检测设备运动以根据它旋转按钮。布局保持原样。
-
设备运动是什么意思?如果设备不是平的,那么您可以使用上面的链接获取角度,这将告诉您设备屏幕的方向。您可以通过不将活动设置为纵向模式进行测试,然后旋转屏幕以查看角度它将翻转为横向。它可能取决于设备。
-
这就是问题所在,设备需要设置为纵向模式,因为我不是要创建不同的布局,而是要在不改变布局方向的情况下根据传感器播放按钮动画。移动设备时检查 VSCO Cam 相机活动按钮旋转,以及布局如何保持不变。
-
我并不是要您不要在生产中将您的活动设置为纵向模式。我只是告诉您在不将活动设置为纵向的情况下进行测试,然后旋转设备。当屏幕将您的活动从纵向更改为横向时,请注意从 OrientationEventListener 返回的角度。所以在这个角度,设备从纵向翻转到横向。现在将您的活动设置为纵向,当 onOrientationChanged 返回时,此角度会旋转您的按钮。或者你可以决定它在哪个角度是横向的,并在 onOrientationChanged 处于这个角度时旋转它。
标签: imagebutton screen-orientation android-sensors sensormanager rotateanimation