Lumpy Space Princess - Adventure Time
공부/Android

[Android] dp와 sp 차이점

yaebb_82 2023. 1. 28.

 

 

1. 개념

Android 기기 별로 화면 크기픽셀 밀도가 다양하다.

- 화면 크기 : 애플리케이션을 표시하기 위한 물리적 공간의 양

- 픽셀 밀도 : 화면의 실제 영역 내에 있는 픽셀 수 (dpi = dots per inch = 1인치 안에 있는 dot의 개수)

 

cf.) 여기서 밀도는 해상도랑 다른 개념이다.

- 해상도 : 화면 상의 총 픽셀 수

 

cf.) 픽셀 밀도가 다른 기기에서 좋은 그래픽 품질을 제공하기 위해서 Android에서는 여러 개의 비트맵 버전을 제공하고 있다.

- ldpi : 저밀도 화면 리소스 (120dpi)

- mdpi : 중밀도 화면 리소스 [기본] (160dpi)

- hdpi : 고밀도 화면 리소스 (240dpi)

- xhdpi : 초고밀도 화면 리소스 (320dpi)

- xxhdpi : 초초고밀도 화면 리소스 (480dpi)

- xxxhdpi : 초초초고밀도 화면 리소스 (640dpi)

 

 

 

2. 측정 단위

Android에서 지원하고 있는 측정 단위이다.

 

- dp / dip

  : 밀도(density) 독립형 픽셀 (UI 요소의 실제 크기에 일관성을 부여한다.)

  : 레이아웃 크기 및 위치를 지정할 때 주로 사용한다.

🤔 만약 밀도 독립성이 없다면?
저밀도 화면에서는 크게 나타날 수도 있음
고밀도 화면에서는 작게 나타날 수도 있음

 

같은 크기의 화면이여도 픽셀 수가 서로 다를 수 있다.

 

- sp

  : 배율(scale) 독립형 픽셀 (확장 및 축소 가능한 픽셀)

  : 글꼴 크기를 지정할 때 주로 사용한다.

  : 사용자가 선호하는 텍스트 크기에 따라 조절된다. (시스템 설정에서 설정한 텍스트 크기의 영향을 받는다.)

 

  cf.) 안드로이드 스튜디오 자체에서도 텍스트 크기의 경우, dp 보다는 sp의 사용을 권장하고 있다.

         하지만 시스템 설정의 텍스트 크기 값에 상관없이 일정한 크기를 유지하고 싶다면 dp를 사용하면 된다.

 

- pt

  : 포인트

  : 72dpi 밀도 화면 기준으로 1/72 인치

 

- px

  : 픽셀 (화면 자체 화소 수)

  : 물리적 해상도를 표시하는 단위

  : px의 사용보다는 dp의 사용이 권장된다.

 

- mm

  : 밀리미터

 

- in

  : 인치

 

 

 

3. 결론

💡 dp vs sp 의 차이점은?
dp : 레이아웃 크기 및 위치를 지정할 때 사용하는 단위 (디바이스에 따라 달라지지 않고 고정된 값을 갖음)
sp : 텍스트 크기를 지정할 때 사용하는 단위 (시스템 설정에 지정된 글자 크기에 영향을 받음)

 

 


 

 

 

🔗 참고

https://developer.android.com/guide/practices/screens_support?hl=ko

https://medium.com/@dev.chamo/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-sp%EC%99%80-dp%EC%9D%98-%EC%B0%A8%EC%9D%B4-491d920fa262

https://woovictory.github.io/2019/01/03/Android-Diff-of-DP-SP/

 

 

 

반응형

댓글