2012-07-26 68 views
0

有什麼方法可以檢測手機搖晃到哪個方向? 例如:我想要從屏幕的右邊緣拍攝某些東西,所以我需要查看是否有電話向左搖晃(從第一個移動開始時的座標)。和左邊界幾乎相同。希望你能理解。搖動手機方向

非常感謝!

+0

只需檢查加速度計讀數,然後執行操作,並且您應該瞭解如何識別手勢。也許你可以在你需要的特定座標上檢查加速度。 – codetiger 2012-07-26 12:29:21

回答

1

您可以通過實現SensorEventListener和檢查檢測在特定方向上的變化:

public void onSensorChanged(SensorEvent se) { 
    // Get sensor data. 
    float x = se.values[SensorManager.DATA_X]; 
    float y = se.values[SensorManager.DATA_Y]; 
    float z = se.values[SensorManager.DATA_Z]; 
} 

然後比較其中一個變量的幾個連續的值來確定方向。我認爲X是你感興趣的那個。

+0

但是當手機旋轉時,這也會起作用。我需要處理安靜粗糙的手勢,就像它朝着一個方向發抖。我考慮過在改變方向之前記住加速度,並將其與後面的加速度進行比較。如果它更大,也更大,那麼一些閾值(以避免光線移動),這意味着電話在朝向方向改變的方向上搖動。 – Graykos 2012-07-26 12:47:00

+0

我無法理解是否有任何傳感器事件中有加速度數據 – Graykos 2012-07-26 12:48:04

+0

您可以像您描述的那樣檢查X(具有treashold值),但同時確保其他兩個接近其初始值。這會告訴你什麼時候發生了一維「搖晃」。 (並且不會在手機旋轉時給你虛驚)等等。這不是你想要的嗎?還是你明確需要加速?你可以使用連續的X值來計算加速度。我還沒有在傳感器庫中看到簡單的方法來簡單地獲得您所建議的加速度。 :/ – TofferJ 2012-07-26 12:52:17