0

アクティビティのオリエンテーションの変更を聞きたいです。普段から色々やってみたけど、

  • onConfigurationChangeandroid:configChangesマニフェスト内の要素の向きで、
  • アクティビティの再起動はありません (ブレークポイントで証明されています)。そのためgetWindowManager().getDefaultDisplay().getRotation()、描画スレッドで常にチェックしない限り、ローテーション後にチェックすることはできません。これは無駄です。
  • 私は使用できOrientationEventListenerましたが、これは電話の角度が変わるたびに呼び出され、これも無駄です。

LandscapeLeft と LandscapeRight の違いを検出しようとしています。この時点で他にどのようにアプローチすればよいかわかりません。

4

1 に答える 1

2

OrientationEventListener度のみを返すため、画面の向きが変更されたかどうかが必ずしも通知されるとは思いません。

を使用するgetWindowManager().getDefaultDisplay().getRotation()のがおそらく最善の方法ですが、デバイスのデフォルトの向きを知っておく必要があります。これは、デフォルトに基づいた回転だけを教えてくれるからです。

向きの変化と座標系を備えたさまざまなセンサーの使用に関する適切なブログがここにあります。

于 2013-05-17T12:46:08.563 に答える