11

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

4

2 に答える 2

13

アプリのウィンドウのサイズが必要な場合は、yourview.getHeight()およびyourview.getWidth();を呼び出すだけです。しかし、それが機能するためには、ビューを描画する必要があります。

描画する前に高さを取得したい場合は、次のように実行できます。

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

ただし、画面/ビューの測定にはさまざまなケースがありますが、「アプリケーションウィンドウの実際のサイズ」について具体的に説明すると、これはあなたのアプリですか?またはホーム画面アプリ?、他のアプリ?

使用可能なスペースから装飾(ステータスバー/ソフトボタン)を差し引いたものが必要な場合は、逆に攻撃することもできます。たとえば、実際の画面サイズを測定し(方法はAPIによって異なります)、ステータスバーの高さを差し引きます。

表示高さの例:

// Deprecated
((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);

これを行うための多くの異なる方法。

より正確な答えを出すには、確かにあなたからのより多くの情報が必要です。

于 2012-12-01T00:04:35.080 に答える
9

これも非常に簡単です。

Rect windowRect = new Rect();

yourView.getWindowVisibleDisplayFrame(windowRect);

int hWindow = windowRect.height();
int wWindow = windowRect.width();
于 2014-12-19T23:59:20.737 に答える