2022-12-22
Androidアプリで画面サイズを取得する方法【Java】
※開発環境としてAndroid Studioを使用しています。
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のバージョンに応じて処理の内容を変えることができます。
投稿されたコメント一覧