카테고리 없음

[안드로이드] SP와 DP의 차이

85chong 2022. 3. 23. 10:49
728x90
반응형
SMALL

DP(Density-Independent Pixels)는 UI 레이아웃을 정의할 때 레이아웃 치수나 위치를 지정하기 위해 사용하는 단위이다.

SP(Scale-Independent Pixels)는 UI 레이아웃을 정의할 때 텍스트의 크기를 지정하기 위해 사용하는 단위이다.

안드로이드 설정 화면에서 사용자는 안드로이드 시스템 전체에서 보여지는 텍스트의 크기를 선택하여 설정할 수 있는데 SP는 해당 설정에 영향을 받는다. 예를 들어, 시스템 설정에서 텍스트 크기를 최대 크게로 설정하게 되면 UI 레이아웃을 정의할 때 SP로 크기를 지정해놓은 TextView의 텍스트 크기가 영향을 받아 커진다. 반면에 TextView의 텍스트 크기를 DP로 설정하게 되면 시스템 설정의 텍스트 크기 값의 변화에 상관없이 일정한 크기를 유지한다.

그래서 디자인 명세에 따라서는 텍스트 크기의 값의 단위를 SP를 사용하는 것이 아니라 DP를 사용하는 것이 좋을 경우도 있을 것이다. 다시 말해, 언제나 일관성있게 화면에서 똑같은 텍스트 크기를 표현하고자 하는 경우에 sp가 아닌 dp 단위를 사용하도록 한다.

 

간단하게 정리해서, SP는 디바이스의 시스템폰트가 10이면 10의 영향을 받아 컨트롤이 어렵고, DP는 디바이스 시스템 폰트를 무시하고 앱 내에서 강제로 고정시켜서 노출한다는 것이다. 그래서 보통 앱에서는 앱에서 원하는 폰트나 사이즈가 필요할테니, Text Size 를 DP로 사용함