Android

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

Photo by LOLIONI on Unsplash

Androidの画面サイズを取得する方法は色々ありますが、シンプルにまとめておきます。

 

画面は次の3つで構成されています。

  1. status bar
  2. navigation bar
  3. コンテンツエリア

 

それぞれのサイズの取得方法は以下の通りです。
ついでに端末解像度の取得方法も書いておきます。

status bar

val resourceId = context.resources.getIdentifier("status_bar_height", "dimen", "android")
val height = context.resources.getDimensionPixelSize(resourceId)

 

navigation bar

val resourceId = context.resources.getIdentifier("navigation_bar_height", "dimen", "android")
val height = context.resources.getDimensionPixelSize(resourceId)

 

コンテンツエリア

val size = Rect()
activity.window.decorView.getWindowVisibleDisplayFrame(size)
// size.height() で取得

※AppBar(タイトル)を表示していても値は変わりません

 

端末解像度

val disp = context.windowManager.defaultDisplay
val size = Point()
disp.getRealSize(size)

// size.x に横、size.y に縦の解像度が入ります。

 

注意

画面のサイズを下記の様に取得して「size.y」に「status barとコンテンツエリアの高さが入る」と書いてある記事が沢山見つかりますが、確認してみた所

「ノッチがある場合はコンテンツエリアだけが入る」ので気をつけて下さい。

val disp = context.windowManager.defaultDisplay
val size = Point()
disp.getSize(size)

 

 

twitterでも毎日開発情報をつぶやいていますので、フォロー宜しくお願い致します。