

10DPi = 정사각항의 한 면 1inch에 10개의 점이 있고, 총 10x10 = 100개의 점으로 이루어져 있다.
PPI와 DPI 는 픽셀이냐 점이냐의 차이지, 해상도를 나타내는 단위로서 결국 같은 맥락이라고 볼 수 있다.
PPI나 DPI가 높아질 수록 선명도가 향상되지만 , 용량이 커진다.


밀도 혹은 독립화소라고 번역할 수 있다. 쉽게 말하자면 디스플레이의 해당도와 상관없이 다룰 수 있는 단위라는 뜻이다.
픽셀 단위는 스크린 안에서 정확하지만 현실 세계에서는 사용자가 사용하는 기기마다 표현되는 길이가 다르다.
dp 단위를 사용하면 기기마다의 차이를 고민하지 않고도 인터페이스를 디자인 할 수 있는 장점이 있다.
하지만 어떠한 경우에서 dp를 px 단위로 변환해야 할 때가 존재하는데, 그럴 때는 아래 식을 사용할 수 있다.
안드로이드 레이아웃 코드 작성을 할 때는 DP를 사용할 수가 없기 때문임
px = dp * (단말 dpi/160)

안드로이드 가이드라인에는 48dp Rhythm 을 가지고 디자인 하라는 조언이 있다.
이것은 사용자가 손끝으로 터이스크린을 건드렸을 때 접촉하는 평균적인 크기이다..
가끔 height 가 48dp 이상이 아니라는 오류 메시지를 봤었는데 관련이 있었구나..
mdpi _ 48px
hdpi _ 72px
xhdpi _ 96px
xxhdpi _ 144px
xxxhdpi _ 1920px
sp 는 텍스트 크기를 지정하기 위해 사용하는 단위로서 , dpㅇ와 달리 시스템 설정에 따라 크기가 유동적으로 변한다.
사용자마다 기기 설정에서 글자 크기를 작거나 크게 조절할 수 있기 때문..
sp는 주로 TextView의 textSize 를 지정할 때 사용된다. dp는 화면에 따라 크기가 달리지지 않고 고정된 값을 갖지만 sp는 시스템 설정에 따라 textSize가 크거나 작아진다.
반대로 텍스트 크기가 고정되어야 할 때는 dp를 사용하면 된다
레이아웃 크기 : wrap_content , match_parent , 또는 dp 단위를 사용하되 필요에 따라 레이아웃은 dp 대신 px을 사용할 수 있다.
텍스트 크기 : 기기 설정(시스템 설정) 에 따라 크기가 달라지는 sp 단위를 사용하자. 고정할 땐 dp