Android のスクリーンサイズ / ナビゲーションバーサイズ を取得
はじめに
今回は、Androidのさまざまな画面サイズを取得するサンプルコードを紹介します。
取得方法
- 青色の線が 画面サイズ(screenSize)
- 黄色の線が アプリが表示されている画面サイズ(applicationScreenSize)
- ピンク色の線が ナビゲーションバーサイズ(navigationBarSize)
/** * 画面全体のサイズ */ val Context.screenSize: Size get() { val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager val display = windowManager.defaultDisplay val point = Point() display.getRealSize(point) return Size(point.x, point.y) } /** * アプリが表示されている画面のサイズ */ val Context.applicationScreenSize: Size get() { val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager val display = windowManager.defaultDisplay val point = Point() display.getSize(point) return Size(point.x, point.y) } /** * ナビゲーションバーのサイズ */ val Context.navigationBarSize: Size get() { val screenSize = screenSize val applicationScreenSize = applicationScreenSize return when { applicationScreenSize.height < screenSize.height -> { // 縦向き Size(applicationScreenSize.width, screenSize.height - applicationScreenSize.height) } applicationScreenSize.width < screenSize.width -> { // 横向き Size(screenSize.width - applicationScreenSize.width, applicationScreenSize.height) } else -> { // 表示されていない(フルスクリーンなど) Size(0, 0) } } }