각 디바이스마다 해상도가 다르기 때문에, 다양한 디바이스에서 동일한 사용경험을 얻게 하기 위해서는 가능한 모든 해상도별로 동일한 사용경험을 얻게 하는 변환 작업이 필요하다.
픽셀은 점의 단위이다. 그런데 어떤 디바이스는 점이 고밀도로 존재할 수 있지만, 어떤 디바이스는 저밀도로 존재할 수 있는 것이다.
dd
DPI는 Dots Per Inch로 1인치에 들어가는 픽셀을 나타내는 단위이다. 예를 들어 100DPI는 1인치당 픽셀이 100개가 포함된다는 것을 의미한다. 개수가 많을수록 고밀도이며 안드로이드에서 주요 DPI는 아래와 같다.
ldpi : 120dpi mdpi : 160dpi(기본) hdpi : 240dpi xhdpi : 320dpi xxhdpi : 480dpi xxxhdpi : 640dpi 안드로이드의 기준 DPI는 160DPI이다. 160 DPI인 경우 밀도 독립단위 DP와 PX이 같은 크기를 갖는다. 즉, 160DPI에서는 1dp는 1px이 된다.
DP(Density-Independent Pixels)는 UI 레이아웃을 정의할 때 레이아웃 치수나 위치를 지정하기 위해 사용하는 단위이다. 픽셀 독립 단위이며 화면의 크기가 달라도 동일한 비율로 보여주기 위해 안드로이드에서 정의한 단위이며 큰 화면, 작은 화면에 상관없이 같은 크기로 나타난다.
SP(Scale-Independent Pixels)는 UI 레이아웃을 정의할 때 텍스트의 크기를 지정하기 위해 사용하는 단위이다.
DP(Density-Independent Pixels)는 UI 레이아웃을 정의할 때 레이아웃 치수나 위치를 지정하기 위해 사용하는 단위이다.
SP(Scale-Independent Pixels)는 UI 레이아웃을 정의할 때 텍스트의 크기를 지정하기 위해 사용하는 단위이다.