투케이2K

454. (kotlin/코틀린) [Android sdk 30 : Display API Deprecated] WindowMetrics 사용해 기기 화면 사이즈 확인 본문

Kotlin

454. (kotlin/코틀린) [Android sdk 30 : Display API Deprecated] WindowMetrics 사용해 기기 화면 사이즈 확인

투케이2K 2024. 1. 17. 20:40
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // TODO [테스트 함수 수행]
    // -----------------------------------------------------------------------------------------
    fun testMain() {
        S_Log._D_("테스트 함수 수행 실시", null)

        // [로직 처리 실시]
        try {

            if (VERSION.SDK_INT >= VERSION_CODES.R) {

                val windowMetrics: WindowMetrics = getSystemService(WindowManager::class.java).getMaximumWindowMetrics()
                val insets: Insets = windowMetrics.getWindowInsets().getInsetsIgnoringVisibility(WindowInsets.Type.systemBars())

                val density = resources.displayMetrics.density

                val widthPx: Int = windowMetrics.getBounds().width() - insets.left - insets.right // [px]
                val widthDp = widthPx / density // [dp]

                val heightPx: Int = windowMetrics.getBounds().height() - insets.bottom - insets.top // [px]
                val heightDp = heightPx / density // [dp]

                S_Log._D_(
                    "WindowMetrics", arrayOf(
                        "Width (px) :: $widthPx",
                        "Width (dp) :: $widthDp",
                        "Height (px) :: $heightPx",
                        "Height (dp) :: $heightDp"
                    )
                )
            }
            
        } catch (e: Exception) {
            S_Log._printStackTrace_(this@A_Webview, S_FinalMsg.LOG_BUG_STATE, null, e)
        }
    }
 

[결과 출력]

 

 

반응형
Comments