2012-11-30 4 views
9

Androidでは、アプリウィンドウのサイズをどのように取得できますか?私は物理的な画面サイズではなく、画面上のアプリケーションウィンドウの実際のサイズを探しています。例えば。一般的に、通知バー、ソフトタッチボタンなどを取り除いた後に残るもの。アンドロイドアプリケーションウィンドウのサイズはどのように取得できますか?物理的な画面サイズは取得できませんか?

答えて

10

アプリのウィンドウのサイズが必要な場合は、yourview.getHeight()とyourview.getWidth()を呼び出すことができます。しかし、それが機能するには、その見解が描かれなければならない。

あなたはあなたがこれを行うことができ描かれています前に、高さを取得したい場合:

https://stackoverflow.com/a/10134260/1851478

あなたはについてのより具体的な可能性がありので、もし画面/ビュー測定の異なるケースの多くは、しかしあります"実際のアプリケーションウィンドウのサイズ"、これはあなたのアプリですか?またはホームスクリーンアプリ?、他のアプリ?

使用可能なスペースからステータスバー/ソフトボタンを差し引いた値を使用する場合は、実際の画面サイズを測定する(APIによってメソッドが異なります)など逆方向にも攻撃できます。ステータスバー。

例ディスプレイの高さ:

((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight(); 

ステータスバーの高さ:

Rect rectgle= new Rect(); 
Window window= getWindow(); 
window.getDecorView().getWindowVisibleDisplayFrame(rectgle); 
int StatusBarHeight= rectgle.top; 

それとも

int statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density); 

これを行うには、多くの異なる方法。

さらに正確な回答を得るには、確かにあなたからさらに詳しい情報が必要です。

+0

おかげで、その私自身の活動の寸法が、私は後です。親ビューの幅/高さは私には当てはまりますが、最初にビューを描画する必要があります。 –

+0

クールで、私が提供したリンクはあなたのためにするべきですが、測定後に隠れる部分は無視することができます。あるいは、ビューが描画された後に.getHeight()と.getWidth()を呼び出すだけです(すでにsetContentView(R.layout.yourview); – logray

+0

と呼んでいるアクティビティの例)描画前に高さを取得したい場合は、それでは、ビューを膨らませた後の次元だけを判断できるコードへのリンクを提供してください。 – AndroidDev

5

また、これは非常に簡単です:

Rect windowRect = new Rect(); 

yourView.getWindowVisibleDisplayFrame(windowRect); 

int hWindow = windowRect.bottom - windowRect.top; 
int wWindow = windowRect.right - windowRect.left; 
関連する問題