9

たとえば、アプリケーションを開始した後、デバイスを90度並べて回転させました。デバイス上の各プレーンについて、このイベントを検出したいと思います。

4

4 に答える 4

18

次のように画面の向きを取得できます(たとえば、onResume()メソッドで)。

private static final int ORIENTATION_0 = 0;
private static final int ORIENTATION_90 = 3;
private static final int ORIENTATION_270 = 1;





Display display = ((WindowManager)
          getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int screenOrientation = display.getRotation();

switch (screenOrientation)
{
default:
case ORIENTATION_0: // Portrait
   // do smth.
break;
case ORIENTATION_90: // Landscape right
   // do smth.
break;
case ORIENTATION_270: // Landscape left
   // do smth.
break;
}
于 2012-12-11T09:42:25.650 に答える
0

すべてのポイントでx、y、zを計算するには、センサーマネージャーを使用する必要があると思います。方程式を使用して、2点間の角度を見つけます。開始点(0,0,0)を考慮してください。

于 2012-12-11T10:39:31.640 に答える
0

これらの値を取得するには、SensorManagerとTYPE_GYROSCOPE / TYPE_ROTATION_VECTOR /TYPE_ORIENTATION/を使用します。

詳細はこちらのページをご覧ください。

于 2012-12-11T10:31:35.130 に答える
0

プレーンにはOrientationEventListenerを使用できます

OrientationEventListener mOrientationListener = new OrientationEventListener(
            getApplicationContext()) {
        @Override
        public void onOrientationChanged(int orientation) {

        }
    };

    if (mOrientationListener.canDetectOrientation()) {
        mOrientationListener.enable();
    }
于 2021-03-09T18:15:46.910 に答える