2011-08-08 5 views
0

ポートレートモードで実行中のアプリケーションがあります。今私は、フルスクリーンで意図を開きたい風景モードと、風景モードの高さと幅を取得する必要があります。ポートレートモードの寸法パラメータのみを取得する

以下はコードです。

requestWindowFeature(Window.FEATURE_NO_TITLE); 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
Display disp = getWindowManager().getDefaultDisplay(); 
Log.i("Width: " + disp.getWidth() + ", Height: " + disp.getHeight()); 

フルスクリーンモードで画面が開いているように、すべてのことがうまくいきます。ランドスケープモードもうまくいきます。しかし、私はポートレートモードの高さと幅のパラメータを取得しています。

私は、横のモードでアプリケーションを実行する場合、私は正しい高さと幅を得ています 同じコードです。

これを解決するにはどうすればよいですか?

+0

取得するために、以下のアプローチを使用して、アンドロイド:この特定の活動のためにscreenOrientationは=「風景」。正しい次元が得られます。 – vbjain

答えて

0

これは、setRequestedOrientationが有効になるまでに時間がかかるからです。コードを使用してonRestart()/ onResumeで表示を取得できます。

このアクティビティの方向を変更します。アクティビティが現在フォアグラウンドにある場合、または画面の向きに影響を与える場合は、画面が直ちに変更されます(アクティビティが再起動される可能性があります)。それ以外の場合は、次回アクティビティが表示されたときに使用されます。

0

は、マニフェストの使用の幅と画面の高さ

WindowManager windowManager = (WindowManager) activity.getApplicationContext().getSystemService(Context.WINDOW_SERVICE); 
int height = windowManager.getDefaultDisplay().getHeight(); 
int width = windowManager.getDefaultDisplay().getWidth(); 
+0

私はこれが電話全体の幅を与えていると思います。しかし、私はちょうどディスプレイ画面の幅が欲しい。私はサムスンギャラクシーS GT - 9003電話を持っています。 480 * 800の寸法を持つ。ディスプレイ画面の高さと幅を取得するにはどうすればよいですか? – vbjain

関連する問題