-
[Android] setTextSize 단위 SP, DP 차이점과 특징Programming/Android 2019. 1. 15. 17:52
안드로이드 기반 스마트폰은 안드로이드에서 다양한 해상도를 지원하기 때문에 각각 제조사별, 제품별 다양한 크기를 가지고 있습니다.
그래서 안드로이드를 처음 접할 때 해상도 관련해서 어려움을 느끼곤 합니다 (ㅠㅠ)
개발자는 해상도 몰라도 되는 것 아닌가? 싶지만 디자이너 협업 등 알아두면 유용하게 사용할 수 있을 것 같습니다.
오늘은 일단 가장 많이 쓰는 TextView에서 TextSize의 단위로 많이 쓰이는 SP와 DP를 먼저 비교하고
이후에 해상도에 대해 더 자세하게 공부해서 포스팅하도록 하겠습니다.
SP(Scale-Independent Pixels) vs DP(Density-Independent Pixels)
-SP(Scale-Independent Pixels) : 직역하면 스케일 독립 픽셀 단위로, 시스템이 지정한 font size에 영향을 받음.
-DP(Density-Independent Pixels) : 직역하면 밀도 독립 픽셀 단위로, 장치의 밀도에 상관없이 물리적으로 동일한 크기를 갖음.
쉽게 말하자면,
SP는 글자 크기가 시스템에 따라 유연하게 변하지만 DP는 시스템에 영향을 받지 않고 늘 고정적인 크기를 가지는 것입니다.
좀 더 이해하기 쉽도록 실제 사진을 가지고 설명하겠습니다.
- TextSize를 "15sp"로 설정한 경우
시스템에서 사용자가 지정한 사이즈에 따라서 글자 크기가 변동하는 것을 볼 수 있습니다.
사용자 개개인의 상황에 맞게 유연하게 대처가 가능하다는 장점이 있습니다.
하지만 변동가능한 글자 크기 때문에 개발자가 원하는 디자인을 만들지 못하거나, 심미적으로 떨어지는 단점이 있습니다.
- TextSize를 "15dp"로 설정한 경우
시스템으로 지정한 글자 크기와 상관없이 고정적인 글자 크기를 보여줍니다.디자인적 요소가 강한 어플리케이션에 사용하면 심미적으로 높은 결과를 도출할 수 있는 장점이 있습니다.
반대로, 고정적인 글자 크기로 인해 사용자가 글을 읽는데 불편함을 느낄 수 있다는 단점이 있습니다.
안드로이드 개발자 가이드 사이트에선
Text 사이즈로는 되도록 SP를 사용하도록 권유합니다.
왜냐하면, 사용자마다 원하는 폰트 크기가 다르기도 하며,
시력이 좋지 않은 노인, 글자를 쉽게 이해하지 못하는 어린아이들 등
각각의 상황에 맞는 디자인을 제공할 수 있기 때문입니다.
반대로, 안드로이드는 각 기기들마다 다양한 크기, 화면 밀도, 해상도를 가지기 때문에,
모든 앱에서 일정하고 고유한 디자인을 위해선 DP를 써야한다는 입장도 있습니다.
제 개인적인 견해로는
두 단위 모두 장/단점을 가지고 있기 때문에, 무엇이 더 좋다 나쁘다할 수 없고,
디자인에 표현되는 Text는 dp로 설정해 최대한 계획했던 디자인에 맞추고,
뉴스, 대화, 글 등을 나타내는 Text는 sp로 설정해 사용자마다
글을 읽고 이해하기 쉽도록 하는 것이 좋지 않을까 생각합니다.
개발 하실 때마다 좀 더 중요도가 높다 생각하는 것에 맞춰 설정하시는 것이 가장 좋은 방법이라 생각합니다.
참고 : https://developer.android.com/training/multiscreen/screendensities (안드로이드 개발자 가이드)
(배워가는 중이라 혹여나 내용에 틀린 부분 말씀해 주시면, 고치도록 하겠습니다)
'Programming > Android' 카테고리의 다른 글
[Android] 안드로이드 4대 구성요소(Component) (0) 2019.01.14