Androidアプリで画面サイズを取得する方法【Java】

Androidで画面のサイズを取得する方法の解説

※開発環境としてAndroid Studioを使用しています。

Androidの画面サイズを取得する方法

Androidで画面のサイズを取得する方法の解説

API29(Android10)までの方法

android.graphics.Pointを使います。

※以下はActivityの中での記述なのでthisを使用しています。


Point point = new Point();
this.getWindowManager().getDefaultDisplay().getRealSize(point);
int width = point.x;
int height = point.y;

関数にするような場合は引数としてActivityを渡してください。


public int getWindowWidth(AppCompatActivity activity)
{
	Point point = new Point();
	activity.getWindowManager().getDefaultDisplay().getRealSize(point);
	return point.x;
}
public int getWindowHeight(AppCompatActivity activity)
{
	Point point = new Point();
	activity.getWindowManager().getDefaultDisplay().getRealSize(point);
	return point.y;
}

※この方法はAPI30から非推奨になっています。

API30(Android11)からの方法

API30からはandroid.view.WindowMetricsを使います。

※以下はActivityの中での記述なのでthisを使用しています。


WindowMetrics wm = this.getWindowManager().getCurrentWindowMetrics();
int width = wm.getBounds().width();
int height = wm.getBounds().height();

関数にするような場合は引数としてActivityを渡してください。


public int getWindowWidth(AppCompatActivity activity)
{
	WindowMetrics wm = activity.getWindowManager().getCurrentWindowMetrics();
	return wm.getBounds().width();
}
public int getWindowHeight(AppCompatActivity activity)
{
	WindowMetrics wm = activity.getWindowManager().getCurrentWindowMetrics();
	return wm.getBounds().height();
}

Androidのバージョンで処理を分岐する方法

バージョンで処理の分岐

Build.VERSION.SDK_INTに現在のAndroidのバージョンが入っています。


if(Build.VERSION.SDK_INT <= 29){
	Point point = new Point();
	this.getWindowManager().getDefaultDisplay().getRealSize(point);
	int width = point.x;
	int height = point.y;
}else{
	WindowMetrics wm = this.getWindowManager().getCurrentWindowMetrics();
	int width = wm.getBounds().width();
	int height = wm.getBounds().height();
}

これでアプリを起動するAndroidのバージョンに応じて処理の内容を変えることができます。

投稿されたコメント一覧

コメント投稿フォーム

必須項目
任意項目

ウェブサービス一覧