0

我正在使用 Processing for Android,我的应用程序几乎完成了。但是,Processing for Android 不适应我想要实现的手机方向。它读取加速度计值,我已经能够通过这个简单的算法大致确定方向:

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

它并非完美无缺,所以我想知道是否有更好的解决方案。有没有办法轮询 Android 以了解当前的手机 UI 方向?是否有比 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 回答