dp, dip, dpi, sp, px 이해하기
dp, dip, dpi, sp, px 이해하기
처음 앱개발하는 사람입장이라면 저것들 특히, dp,sp와 px의 관계를 이해하기가 조금 어려울지도 모르겠네요.
정리해 보았습니다.
- dip: Density Independent Pixels의 약어.
- 160dpi 기준, 1dp=1px ( 안드로이드에서는 mdpi )
- 320dpi 기준, 1dp=2px ( 안드로이드에서는 xhdpi )
- dp: dip과 동일
- dpi: 화면 픽셀 밀도의 단위로 "dot per inch"의 약자
- px: 픽셀, 물리적 절대 단위(즉, 실제 모니터상의 화소)
- sp: Scale-Independent Pixels의 약어로, 텍스트 크기 기본 설정에 따라 자동으로 크기를 조정할 수 있습니다. Google에서는 12sp 이상의 크기를 사용할 것을 권장하며 일반적으로 12sp, 14sp, 18sp, 22sp를 사용할 수 있으며 홀수 및 소수는 사용하지 않는 것이 가장 좋습니다.
mdpi, hdpi, xdpi, xxdpi, xxxdpi란? 계산하고 구별하는 방법은?
Google의 공식 개발 문서에는 mdpi:hdpi:xhdpi:xxhdpi:xxxhdpi=2:3:4:6:8의 크기 비율이 조정되어 있다고 설명되어 있습니다. 예를 들어 아이콘의 크기는 48×48dp입니다. 즉, mdpi에서 실제 크기는 48×48px이고, hdpi 픽셀 밀도에서 실제 크기는 mdpi의 1.5배인 72×72px입니다.
빠르게 계산하고자 할때는 아래의 사이트를 이용하세요.
https://www.pixplicity.com/dp-px-converter
Android Kotlin 에서 사용은 이렇게.
fun convertDpToPixel(context: Context, dp: Int): Int {
val density = context.applicationContext.resources.displayMetrics.density
return Math.round(dp.toFloat() * density)
}
fun convertPixelToDp(context: Context, px: Int ): Float {
val metrics = context.applicationContext.resources.displayMetrics.density
return px / density
}
0 comments:
댓글 쓰기