1

を呼び出した後に Android でデバイスの向きの変更を知る方法はありますか?setRequestedOrientation次の方法を試してみました。

  1. getResources().getConfiguration().orientation
  2. OrientationEventListener
  3. Display getOrient = getWindowManager().getDefaultDisplay().getRotation();

ただし、デバイスの向きを変更した後でも、上記のすべてのメソッドは同じ値を返します。
を呼び出した後、デバイスの向きの変化を見つける方法を誰か提案してくださいsetRequestedOrientation

4

2 に答える 2

3

回避策かもしれません:現在のコンテキストに追加された OrientationEventListener から onOrientationChanged 度を処理します。例えば:

final OrientationEventListener orientationEventListener = new OrientationEventListener( getApplicationContext() ) {

    @Override
    public void onOrientationChanged( final int orientation ) {
        Log.i( "orientation_test", "orientation: " + orientation );
    }
};

orientationEventListener.enable();

たとえば、アクティビティの onResume で追加して有効にし、onPause で無効にします。

于 2014-03-17T14:43:38.317 に答える
-1

これはうまくいくはずです:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
    // Do something
else
    // Do something else
于 2013-08-06T11:24:59.133 に答える