2011-04-27 91 views
3

可能重复:
How do I detect screen rotation如何获得OrientationEventListener.onOrientationChanged()被调用,只有当UI旋转

你好,

所有我想做的事情,就是检测我的应用程序中的旋转变化。不过,我想我在Android系统中发现了一个错误。如果你读了这一点:

http://developer.android.com/guide/practices/optimizing-for-3.0.html#Landscape

它说的每一个设备改变方向,Activity.onDestroy()时被调用,并Activity.onCreate()被调用。所以我想我可以使用Display.getRotation()方法在Activity.onCreate()方法中找出我的新方向。但是,我发现由于某种原因,如果快速将设备翻转180度,onCreate()(或甚至onResume())永远不会被调用。我用toast消息证明了这一点。我的Activity.onCreate()(或Activity.onResume())中的Toast消息将以90度旋转出现,但不会与180度翻转的设备一起显示。所以问题是,上面的文章中的主张并不总是如此。

然后我决定使用OrientationEventListener.onOrientationChanged()。这是有效的,但我不希望onOrientationChanged()在我的应用程序中被反复调用(它会随着设备程度的每次变化而被调用)。这会减慢我正在做的一切。我只希望在我旋转屏幕的时候调用屏幕来旋转屏幕上的图像,以便我可以确定我是否在rotation_0,rotation_90,rotation_180或rotation_270。

这是与xoom当然。

任何建议

+0

其他应用程序是否在翻转肖像模式下正确显示? (我没有平板电脑,但在手机翻转肖像不是支持的方向) – LeffelMania 2011-04-27 22:10:47

+0

请详细说明 - 如果设备翻转180度,您不必处理由于屏幕尺寸更改而导致的配置更改,不得不处理正在重新创建的活动,因为它不是......那么为什么你需要检测这种情况呢? – 2011-04-27 22:25:44

+1

LeffelMania:是的,其他应用程序正确翻转并显示所有内容。所以我的应用程序,但问题是,getRotation()似乎并没有告诉我正确的事情。 – 2011-04-28 01:26:45

回答

0

回答详细here

+0

我最初的搜索没有那么好。 – 2011-04-28 01:37:40

相关问题