2010-09-22 104 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