• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94

한 우물만 파는 기술 블로그

[Android] 디바이스 화면 해상도 구하기
Android

[Android] 디바이스 화면 해상도 구하기

2022. 3. 28. 18:55
fun getDeviceMetric(): ScreenSizeInfo =
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
    val displaySize = Point()
    context.getSystemService(WindowManager::class.java).defaultDisplay?.getRealSize(displaySize)
    ScreenSizeInfo(
        screenWidth = displaySize.x,
        screenHeight = displaySize.y
    )
} else {
    val metrics = context.getSystemService(WindowManager::class.java).maximumWindowMetrics
    ScreenSizeInfo(
        screenWidth = metrics?.bounds?.width(),
        screenHeight = metrics?.bounds?.height()
    )
}

data class ScreenSizeInfo(
     val screenWidth: Int? = 0,
     val screenHeight: Int? = 0
)


Android SDK 30 이후부터는 display에 관련하여 함수들이 이것저것 Deprecated 된 게 많기 때문에 SDK 30 이전 버전을 위한 코드로 인해 지저분해 보이는 단점이 있다.

위 코드는 size를 구해오는 과정에서 null(혹은 0)일때의 처리가 별도로 없기 때문에 반드시 고려하여 사용해야 한다.

 

저작자표시 비영리 변경금지 (새창열림)

'Android' 카테고리의 다른 글

[Android] Retrofit2  (0) 2022.04.07
[Android] Shape에 margin 속성 추가하기  (0) 2022.04.05
[Android] CameraX  (0) 2022.01.10
[Android] JitPack 안드로이드 라이브러리 모듈 배포하기  (0) 2021.12.30
[Android] 안드로이드 스튜디오 GradleView Tasks 미노출시  (0) 2021.12.28
    'Android' 카테고리의 다른 글
    • [Android] Retrofit2
    • [Android] Shape에 margin 속성 추가하기
    • [Android] CameraX
    • [Android] JitPack 안드로이드 라이브러리 모듈 배포하기
    MJ_94
    MJ_94
    안드로이드, 개발 관련 기술 블로그

    티스토리툴바