每种四种类型方向的传感器值

时间:2013-04-26 13:36:08

标签: android

我正在使用OrientationEventListener()来检测方向变化但是它给出了连续的值。我只想要每个方向的四个值,即PORTRAIT,REVERSE_PORTRAIT,LANDSCAPE和REVERSE_LANDSCAPE MODE。我应该怎样做才能在方向改变时获取值。我应该问题是我想在设备快速从LANDSCAPE MODE转到REVERSE LANDSCAPE MODE时检测方向。我想只在方向改变时调用currentScreenOrientation()函数,但现在它为0到359之间的每个值调用它。

        mOrientationEventListener = new OrientationEventListener(this,
                SensorManager.SENSOR_DELAY_NORMAL) {
            @Override
            public void onOrientationChanged(int arg0) {
                currentScreenOrientation();
            }
        };

        if (mOrientationEventListener.canDetectOrientation()) {
            Toast.makeText(this, "Can DetectOrientation", Toast.LENGTH_LONG)
                    .show();
            mOrientationEventListener.enable();
        } else {
            Toast.makeText(this, "Can't DetectOrientation", Toast.LENGTH_LONG)
                    .show();
            finish();
        }
    }

提前完成。

1 个答案:

答案 0 :(得分:1)

首次保存应用启动时设备的方向

mDisplay = getWindowManager().getDefaultDisplay();
mCurrentOrientation = mDisplay.getRotation(); // return values are 0, 90, ... 

并在onOrientationChanged检查方向是否已更改

@Override
public void onOrientationChanged(int orientation)
{

      if (mDisplay.getRotation() != mCurrentOrientation)
      {
          mCurrentOrientation = mDisplay.getRotation();
          currentScreenOrientation();
      }

 }