-
[Android Studio] dp와 sp단위에 대해 알아보자AndroidStudio 2020. 3. 3. 01:45
dp란? (밀도 독립적 픽셀)
dp(or dip)는 Density-independernt Pixels의 줄임말로 같은 면적에 포함되어 있는 물리적인 픽셀의 밀도로부터 독립적인 크기를 가진 픽셀 단위이다. dp는 디스플레이 해상도 160dpi를 기준으로 1픽셀 = 1dp가 기준이다. 따라서 디스플레이의 해상도가 높아질수록 dp와 매칭되는 면적이 커지도록 자동으로 ui를 스케일링해준다. 예를 들어 320dip 장비(해상도 2배 증가)에서 10dp는 20px와 같은 것이다.
- 일반적인 픽셀 : 디스플레이의 물리적인 도트 하나에 픽셀이 하나씩 매칭
- 1dp : 물리적인 도트보다 더 크거나 작을 수 있음
dp단위가 존재하는 이유는 비슷한 크기의 스마트폰이더라도 해상도가 다르면 물리적인 픽셀 수도 다르기 때문이다. 자세히 설명하자면, 픽셀 단위로 button/폰트를 구성하면 화면의 픽셀 수가 많은 경우가 그렇지 않은 경우보다 보여지는 크기가 상대적으로 작아진다.
sp란? (축적 독립적 픽셀)
sp는 sacle-indpendent pixels의 줄임말로 dp와 같이 밀도에 독립적인 픽셀이지만 글꼴에 적용하기 위해 만들어진 단위이다. sp를 사용한 글꼴은 안드로이드의 OS의 설정에서 글꼴의 크기를 조정하는 것에 영향을 받는다. 따라서, 텍스트의 접근성이 중요한 앱이라면 글꼴에 sp를 사용하면 좋다.
모바일에서 화면 글꼴을 크게 확장하는 경우, 전체적인 레이아웃이 다 흐트러지는 경우가 발생하기도 한다. 이후에 이를 보안하는 방법에 대해서도 포스팅하겠다.
그 외 in, mm란?
물리적 단위이다. 출력화면을 측정하면 설정한 수치와 일치하게 된다. 즉, 해상도가 달라져도 동일한 크기의 레이아웃이 구성이 가능하다. 하지만 이는 정밀도가 떨어지므로 꼭 필요한 경우에만 사용해야한다. 왜냐하면 화면은 픽셀단위로 출력을 제어하는 경우가 많기 때문이다.
'AndroidStudio' 카테고리의 다른 글
[안드로이드스튜디오] 뷰와 기본 위젯 (0) 2020.05.17 [Android studio] view 시스템 (0) 2020.03.03 [Android studio] Activity(화면의 기본 단위)란? (0) 2020.03.02 [Android studio] 개발 환경 살펴보기 (0) 2020.03.02