スポンサーリンク
Photo by LOLIONI on Unsplash
Androidの画面サイズを取得する方法は色々ありますが、シンプルにまとめておきます。
画面は次の3つで構成されています。
- status bar
- navigation bar
- コンテンツエリア
それぞれのサイズの取得方法は以下の通りです。
ついでに端末解像度の取得方法も書いておきます。
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でも毎日開発情報をつぶやいていますので、フォロー宜しくお願い致します。
スポンサーリンク