프로그래밍/android

[android] Dp to Px, Px to Dp

-샤리- 2021. 6. 30. 15:25

DisplayMetrics를 통해서 density와 densityDpi 값을 구해보면

val density = resources.displayMetrics.density
val densityDpi = resources.displayMetrics.densityDpi

 

기준이 되는 mdpi로 보면 densityDpi = 160 이므로,

density = 160 / 160 = 1

즉, 1dp = 1px

 

그렇다면 density = densityDpi / 160 이라는 공식으로

densityDpi가 440 이라면 density는 2.75가 나온다.

 

 

※ Px to Dp

val samplePx = 300
val density = resources.displayMetrics.density
val value = (samplePx / density).toInt()

 

※ Dp to Px

val sampleDp = 100
val density = resources.displayMetrics.density
val value = (sampleDp * density).toInt()