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

  • 14
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

やりたいこと

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()内で呼び出すようにしましょう。