Androidでステータスバーの高さを取得する方法を徹底解説
Androidのステータスバーの高さはどのように決まる?
Androidのステータスバーの高さは端末によって異なります。一般的には24dp(密度に換算して約24〜48px)が標準とされていますが、メーカーや機種、OSのバージョンによって多少の差があるため、プログラムから動的に取得するのが確実です。
本記事では、Androidアプリからステータスバーの高さ(ピクセル数)を取得し、Toastで表示するサンプルアプリの作成方法を、手順を追ってわかりやすく解説します。
手順1:新しいプロジェクトを作成する
まず、Android Studioを起動し、メニューから File → New Project を選択して、必要な項目を入力して新規プロジェクトを作成します。
手順2:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xml に以下のコードを追加します。
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" xmlns:app="https://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
ここではシンプルに、画面中央に「Hello World!」を表示するだけのConstraintLayoutを使用しています。
手順3:MainActivity.javaにステータスバーの高さを取得する処理を書く
src/MainActivity.java に以下のコードを追加します。
package com.app.sample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getStatusBarHeight();
}
private int getStatusBarHeight() {
int height;
Resources myResources = getResources();
int idStatusBarHeight = myResources.getIdentifier( "status_bar_height", "dimen", "android");
if (idStatusBarHeight > 0) {
height = getResources().getDimensionPixelSize(idStatusBarHeight);
Toast.makeText(this, "Status Bar Height = " + height, Toast.LENGTH_LONG).show();
} else {
height = 0;
Toast.makeText(this, "Resources NOT found", Toast.LENGTH_LONG).show();
}
return height;
}
}コードのポイント
- getIdentifier() メソッドを使って、システム内部リソース「status_bar_height」のリソースIDを取得しています。
- リソースIDが取得できた場合(0より大きい場合)は、getDimensionPixelSize() で実際のピクセル値に変換し、Toastで表示します。
- リソースが見つからない場合は高さを0として、「Resources NOT found」というメッセージを表示します。
なお、この方法はシステムの非公開リソースにアクセスする手法のため、将来的なOSアップデートで動作が変わる可能性があります。より安全に実装したい場合は、WindowInsets API(setOnApplyWindowInsetsListener など)の利用も検討しましょう。
手順4:AndroidManifest.xmlを確認する
Manifests/AndroidManifest.xml に以下のコードを記述します。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.app.sample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
アプリを実行して結果を確認する
それでは、アプリを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提に進めます。
- Android Studioでプロジェクト内のアクティビティファイルを開きます。
- ツールバーのRun(実行)アイコンをクリックします。
- 接続したモバイルデバイスを選択して実行します。
アプリが起動すると、端末のデフォルト画面が表示され、ステータスバーの高さがピクセル数でToast通知されます。

まとめ
Androidのステータスバーの高さは端末ごとに異なるため、固定値をハードコーディングするのではなく、リソースやWindowInsetsから動的に取得することが重要です。本記事のサンプルコードを活用すれば、どの端末でも正確なステータスバーの高さを取得できます。フルスクリーン表示やカスタムヘッダーの実装など、UI調整の際にぜひ参考にしてください。
-
Android Studio完全入門ガイド:インストールからアプリ公開まで初心者向けに解説
Android Studioは、Androidアプリ開発のためのGoogle公式統合開発環境(IDE)です。IntelliJをベースとしており、Python開発者の間で人気の高いPyCharmと同じコードエディタを採用しています。 本記事では、Android Studioを初めて使う方向けに、インストールからアプリ公開までの基本操作をわかりやすく解説します。 Android Studioのインストール手順 まずは公式サイトからダウンロードしましょう。執筆時点では、十分なテストが完了しているバージョン3.3のダウンロードをおすすめします。それ以上のバージョンには新機能が追加されていますが、多く
-
Android向けShowboxアプリとは?無料で映画・ドラマを楽しむ完全ガイド
Android向けShowboxアプリとは? Showbox for Androidは、Androidスマートフォンで映画やテレビ番組をストリーミング視聴したりダウンロードしたりできるアプリです。ShowboxはGoogle Playストアでは配信されていませんが、安全性の高いサードパーティサイトからAPKファイルを入手することが可能です。インストールさえ完了すれば、安定したインターネット環境があれば無料で映画やドラマを楽しめます。ただし、視聴を始める前に、Android端末側でいくつかの事前準備を行っておく必要があります。 Showbox APKダウンロード前に行うべき設定変更 Googl