0

Android 4.2で問題があります。画面が横向きか縦向きかを把握しようとしています。これを行う次の方法を認識しています。

  1. これは、API レベル 8 以降で減価償却されることを除いて、完全に機能します。

    Display display = ((WindowManager) 
                  getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
    int orientation = display.getOrientation();
    
  2. これは、Android 4.2 で方向を把握するための推奨される方法です。ただし、このメソッドは回転角度のみを返すため、現在のデバイス構成 (横向きまたは向き) を把握するには正しくありません。

    WindowManager wManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    int rotation = wManager.getDefaultDisplay().getRotation();
    

デバイスのデフォルトの向きに関係なく、現在の回転が何であるか (横向きまたは縦向き) を知る必要があります。この問題について何か助けていただければ幸いです。

ありがとうございました。

4

2 に答える 2

1

あなたが試すことができます:

int orientation = getResources().getConfiguration().orientation;

if (orientation == Configuration.ORIENTATION_LANDSCAPE)
{
// code
} else if (orientation == Configuration.ORIENTATION_PORTRAIT)
{
// code
}
于 2013-04-09T18:52:38.813 に答える
1

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

   Activity.getResources().getConfiguration().orientation

横向きか縦向きかはわかりますが、リバース (逆ランドスケープ) は区別されません。

onConfigurationChanged メソッドをオーバーライドすることもできます

public void onConfigurationChanged(Configuration _newConfig)
于 2013-04-09T18:53:40.803 に答える