반응형
UI 작업을 할때 사용자 기기마다 다른 해상도때문에 문제가 있는 경우가 종종 있습니다.
그래서 이번글을 통해 간단히 기기 해상도를 가져오는 방법에 대해 설명드리겠습니다.
<소스코드>
val width: Int // 가로해상도
val height: Int // 세로해상도
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
// getDefaultDisplay(), getRealMetrics() API 30이상부터 deprecated됨
val windowMetrics: WindowMetrics = (context.getSystemService(WINDOW_SERVICE) as WindowManager).currentWindowMetrics
width = windowMetrics.bounds.width()
height = windowMetrics.bounds.height()
} else {
val displayMetrics = DisplayMetrics()
activity?.windowManager?.defaultDisplay?.getMetrics(displayMetrics)
width = displayMetrics.widthPixels
height = displayMetrics.heightPixels
}
println("width $width, height $height")
특이사항으로는 안드로이드 30이상부터 getDefaultDisplay()와 getRealMetrics()가 deprcated 되어
WindowMetrics를 이용해서 대체할 수 있습니다. 30이전 버전은 DisplayMetrics를 이용하시면 됩니다.
반응형
'Android' 카테고리의 다른 글
[안드로이드 / Kotlin] Int형을 Byte Array로 나타내기 (0) | 2022.01.03 |
---|---|
[안드로이드 / Kotlin] 블루투스 상태 체크 (0) | 2021.12.11 |
[안드로이드 / Kotlin] 네트워크 상태 체크 (0) | 2021.11.30 |
[안드로이드 / Kotlin] 앱 재시작 (0) | 2021.10.17 |
[안드로이드 / Kotlin] byte array를 hex string으로 변환 (0) | 2021.09.14 |