Posted at

Statusbarのサイズ(高さ)を取得する。

More than 3 years have passed since last update.


やりたいこと

AndroidでStatusbarの高さが必要なことがあります。例えばStatusbarを透過させてそのサイズだけ下のViewにPaddingを追加したりするときなどです。そんなときは以下のコードを適当なユーティリティクラスに書いておけばOKです!


コード

     /**

* Return Statusbar size.
* @param activity Activity
* @return Statusbar size
*/

public static int getStatusBarHeight(Activity activity){
final Rect rect = new Rect();
Window window = activity.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rect);
return rect.top;
}

これでStatusbarの高さを取得できます。


注意点

これをActivityで実行するときはonCreateで呼び出すとまだViewの計算が終わってないので0になってしまいます。したがってonWindowFocusChanged()内で呼び出すようにしましょう。