0

私はProcessingforAndroidを使用していますが、アプリはほぼ完成しています。ただし、Processing for Androidは、実装したい電話の向きに適応しません。加速度計の値を読み取り、この単純なアルゴリズムによって方向を大まかに判断することができました。

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

それは完璧ではないので、もっと良い解決策があるかどうか疑問に思っています。現在の電話のUIの向きについてAndroidをポーリングする方法はありますか?7(私が任意に選んだもの)よりも安定した値はありますか?

4

1 に答える 1

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;
    }
}
于 2012-08-13T00:30:45.967 に答える