본문 바로가기

Kotlin

[j Android] 디바이스 높이, status bar, navigation bar 높이 가져오기

728x90
반응형

* Anroid P 이상 높이

 

1. device 사이즈 가져오기

 

fun getScreenSize(activity: Activity): DisplayMetrics {
        val displayMetrics = DisplayMetrics()

        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val display = activity.display
            display?.getRealMetrics(displayMetrics)
            displayMetrics
        } else {
            @Suppress("DEPRECATION")
            val display = activity.windowManager.defaultDisplay
            @Suppress("DEPRECATION")
            display.getMetrics(displayMetrics)
            displayMetrics
        }

  }

- width, height

ScreenSize().getScreenSize(activity).widthPixels //width
ScreenSize().getScreenSize(activity).heightPixels //height

 

- status bar, navigation bar

val resources: Resources = activity.resources

resources.getIdentifier("navigation_bar_height", "dimen", "android")
resources.getIdentifier("status_bar_height", "dimen", "android")

 

* getMetrics() : status bar에 카메라가 있는 폰과 아닌 폰에서 가져오는 높이 값이 다르다.

 

* getRealMetrics() : status bar에 카메라가 달린 폰과 아닌 폰 상관없이 디바이스의 실재 해상도 값을 리턴합니다. 이 값에서 상태바와 소프트 네이게이션 바의 높이를 필요에 따라 빼서 사용하면 된다.

 

 

 

 

 

 

 

참조 : https://black-jin0427.tistory.com/230

 

[Android, Device Height] Android P 이후 디바이스 높이 가져오기

안녕하세요. 블랙진입니다. Android 9(Pie, API 레벨 28) 이후 나온 스마트폰에서 높이 값을 가져오는 코드에 대한 필자가 겪은 이슈 내용을 포스팅 하고자 합니다. 먼저 그동안 디바이스의 높이를 가

black-jin0427.tistory.com

 

728x90
반응형