2012-08-13 30 views
0

我正在使用Processing for Android,我的應用程序已快完成了。但是,針對Android的Processing並不適應我想要實現的電話定位。它讀取加速計值的,我已經能夠通過這個簡單的algorhitm大致確定方向:如何通過加速度計確定方向?

if (y > 7) 
    { 
    o = UPRIGHT; 
    } 
    else if (y < -7) 
    { 
    o = UPSIDEDOWN; 
    }  
    else if (x > 7) 
    { 
    o = TURNLEFT; 
    } 
    else 
    { 
    o = TURNRIGHT; 
    } 

它不是完美無瑕的,所以我不知道是否有更好的解決方案。 有沒有辦法針對當前的手機用戶界面方向來調查Android?是否有比7更穩定的值(我選擇了哪種)?

回答

2

通過監控下面的配置變化對方向的基礎上,AndroidManifest.xml,例如,假設該活動被稱爲myActivity,那麼以下就足夠了:

<activity android:name=".myActivity" 
    android:configChanges="orientation" 
    android:label="MyActivity" /> 

而且從myActivity類,處理它與此:

@Override 
public void onConfigurationChanged(Configuration newConfig){ 
    super.onConfigurationChanged(newConfig); 
    switch(newConfig.orientation){ 
    case Configuration.ORIENTATION_UNDEFINED: 
     Log.v(TAG, "[onConfigurationChanged] - Undefined"); 
     break; 
    case Configuration.ORIENTATION_SQUARE: 
     Log.v(TAG, "[onConfigurationChanged] - Square"); 
     break; 
    case Configuration.ORIENTATION_PORTRAIT: 
     Log.v(TAG, "[onConfigurationChanged] - Portrait"); 
     break; 
    case Configuration.ORIENTATION_LANDSCAPE: 
     Log.v(TAG, "[onConfigurationChanged] - Landscape"); 
     break; 
    } 
} 
+0

cool,我不知道'配置',但我怎麼知道它是beind在橫向模式舉行?如果它是90度順時針或逆時針 – joon 2012-08-13 08:29:07

+0

嘗試它,並在改變方向時觀看logcat :) – t0mm13b 2012-08-13 12:50:17