2010-09-22 69 views
6

我想在手机正面对的屏幕上显示方向。例如:如何获取指南针方向

0 
    |- [] 
    |_ 
    South --- North 

在上述图中,电话将显示“北”。由于用户(头部为0的棍子)将手机(图中的[])指向北方。我发现this example。我明白它在做什么,除非它似乎计算偏航,俯仰,滚转和倾斜。这些是什么以及如何使用它们来简单地找到手机指向的方式?

另外这android documentation提到X,Y和Z轴,但我没有看到任何地方说,这些轴如何对应于手机? Z从电话底部到顶部?

+1

http://en.wikipedia.org/wiki/Yaw_angle – Falmarri 2010-09-22 20:42:42

+0

我也注意到了GeomagneticField类具有的getX和方法的getY?我可以用它来代替吗?它没有任何一种sensorChanged altert,但。我是否必须自己创建循环来轮询它? – Greg 2010-09-22 20:43:35

+0

本文可能对您有用。在屏幕上显示路线时,您需要关注屏幕方向的假设。 http://android-developers.blogspot.com/2010/09/one-screen-turn-deserves-another.html – 2010-09-22 20:49:04

回答

5

this轴(axiy?)的外观如何。

我找不到我使用的备忘单的链接,但看起来有点像this

总之,您想要注册以侦听来自传入数组get,value [0]的数组Sensor.TYPE_ORIENTATION,并显示您的角度(从我相信的北方)。

一些example从* android.com

+0

谢谢。如果手机处于横向模式会发生什么情况? – Greg 2010-09-23 18:06:35

+0

根据这篇文章,http://www.google.com/support/forum/p/android/thread?tid=11b73cc231c318af&hl=zh-CN其基本上是一个硬件指南针,所以它应该在横向模式下正常运行 – bgs 2010-09-23 20:40:32

+2

我只是喜欢指出'Sensor.TYPE_ORIENTATION'已被弃用,有利于'SensorManager.getOrientation()'。 – AlbeyAmakiir 2012-04-17 03:59:07