#やりたいこと
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()
内で呼び出すようにしましょう。