-
Android) Device 실제 사이즈 구하기 (feat - display, getRealMetrics)Android 2021. 4. 8. 17:43
Good bye defaultDisplay, getMetrics
화면에서 BottomSheetDialog를 띄울 때 디바이스 화면의 해상도와 높이를 구해서 코드를 적용했는데 아래와 같은 결과가 나왔습니다.
val displayMetrics = DisplayMetrics() activity.windowManager.defaultDisplay.getMetrics(displayMetrics) val deviceHeight: Int = displayMetrics.heightPixels val layoutParams = view?.layoutParams layoutParams?.height = deviceHeight - 24.toPx() view?.layoutParams = layoutParams
defaultDisplay는 API 레벨 30 (Android R) 이상에서 지원 중단 된 것으로 표시되었습니다.
즉, API 레벨 30 미만의 최소 SDK 구성이있는 경우 이전 지원 중단 된 코드와 새로운 권장 코드로 구현해야합니다.
해결방법은 아래와 같습니다.
val outMetrics = DisplayMetrics() if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { val display = activity.display display?.getRealMetrics(outMetrics) } else { @Suppress("DEPRECATION") val display = activity.windowManager.defaultDisplay @Suppress("DEPRECATION") display.getMetrics(outMetrics) }
위의 코드를 적용하게 되면
같은 해상도와 높이가 적용된 것을 확인할 수 있습니다.
Reference
반응형'Android' 카테고리의 다른 글
Android) 음성 녹음을 위한 MediaRecorder 알아보기 (0) 2021.04.12 Android) Retrofit2 작동 원리 알아보기 (0) 2021.04.09 Android) State 패턴을 통해서 UI 상태 관리하기 (0) 2021.02.26 Android) Room에서 List 또는 객체를 필드에 저장하는법 feat) @Embeded @TypeConverter (0) 2021.02.19 Android) asStateFlow() 메소드 알아보기 (0) 2021.02.17