안드로이드 개발

안드로이드 px, dip, dp 와 sp 차이 설명

피커 2023. 5. 11. 19:35
728x90
반응형

안드로이드 개발할때 쓰는 단위가 여러가지가 있습니다.

예를들어 layout 에서 textview의 위치나 크기를 입력할때는 dp를 쓰고 있습니다.

글씨의 크기를 지정할때는 sp를 사용하고 있습니다.

이런 용어들을 정리해봤습니다.

 

우선 아래 예제를 보면 sp, dp, pt를 사용하는 예제를 확인할 수 있습니다.

 

실제 layout 정보는 아래와 같습니다.

이제 각 단위에 대해 알아보겠습니다.

 

1. px

  -. 픽셀 - 화면의 실제 픽셀에 해당합니다.

 

2. in


 -. 인치 - 화면의 물리적 크기를 기준으로 합니다.
    1인치 또는 2.54센티미터

3. mm


 -. 밀리미터 - 화면의 물리적 크기를 기반으로 합니다.


4. pt 

  -.  포인트 - 화면의 실제 크기를 기준으로 1/72인치입니다.

 

 

5. DP 또는 dip

  -.  Density-independent Pixels -

     화면의 물리적 밀도를 기반으로 하는 추상 단위입니다.

     이러한 단위는 160dpi 화면에 상대적이므로 1dp는 160dpi 화면의 1픽셀입니다.

      dp 대 픽셀 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하지는 않습니다.

      참고: 컴파일러는 "dip"와 "dp"를 모두 허용하지만 "dp"는 "sp"와 더 일관성이 있습니다.

6. sp

 - .  Scaleable Pixels OR scale-independent 

     dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기도 조정됩니다.

    글꼴 크기를 지정할 때 이 단위를 사용하는 것이 좋습니다.

     그러면 화면 밀도와 사용자의 선호도에 맞게 조정됩니다.

     Android 문서는 sp가 실제로 무엇을 의미하는지에 대해 일치하지 않습니다.

     "스케일 독립적 픽셀"이라고 말하고 다른 문서는 "스케일 가능한 픽셀"이라고 말합니다.

 

*. 참고 자료

 

Density BucketScreen DensityPhysical SizePixel Size

ldpi 120 dpi 0.5 x 0.5 in 0.5 in * 120 dpi = 60x60 px
mdpi 160 dpi 0.5 x 0.5 in 0.5 in * 160 dpi = 80x80 px
hdpi 240 dpi 0.5 x 0.5 in 0.5 in * 240 dpi = 120x120 px
xhdpi 320 dpi 0.5 x 0.5 in 0.5 in * 320 dpi = 160x160 px
xxhdpi 480 dpi 0.5 x 0.5 in 0.5 in * 480 dpi = 240x240 px
xxxhdpi 640 dpi 0.5 x 0.5 in 0.5 in * 640 dpi = 320x320 px

 

UnitDescriptionUnits Per Physical InchDensity Independent?Same Physical Size On Every Screen?

px Pixels Varies No No
in Inches 1 Yes Yes
mm Millimeters 25.4 Yes Yes
pt Points 72 Yes Yes
dp Density Independent Pixels ~160 Yes No
sp Scale Independent Pixels ~160 Yes No
반응형