Android
[안드로이드 기본 개념] 'dp' 단위
nanee_
2022. 2. 14. 16:46
728x90
반응형
SMALL
px (pixel, 픽셀)
크기의 단위로 px (pixel, 픽셀) 을 그동안 사용해왔다.
px은 물리적인 단위로 고정된 값이여서 안드로이드 개발에서는 잘 쓰이지 않는다.
디바이스의 종류가 많고, 디바이스별 화면 크기가 제각각이기 때문에 고정된 크기의 단위를 사용한다면
디바이스별로 차이가 크게 날 것이기 때문이다.
그렇다면, 어떤 단위를 사용해야 할까?
dp
'dp' 라는 단위를 사용한다.
dp는 논리적인 단위로 디바이스별 크기에 따라 크기가 계산되어지는데
이때 dpi, 해상도가 중요하게 다뤄진다.
dpi 란? dot per inch 의 약자로 1인치 안에 들어있는 px 의 갯수이다.
dpi가 높을수록 고해상도이고, 낮을수록 저해상도이다.
안드로이드에서 명시한 기준으로 볼 때,
ldpi = 1인치에 120px (저해상도)
mdpi = 1인치에 160px
hdpi = 1인치에 240px
xdpi = 1인치에 320px
xxdpi = 1인치에 480px
xxxhdpi = 1인치에 640px (고해상도)
이렇게 나눠진다.
* 최근에는 xxxxhdpi 까지 나왔다고 한다.
px, dp 공식
그럼, 계산법은 어떻게 될까?
px = dp * (단말 dpi / 기본 160)
dp = px * (기본 160 / 단말 dpi)
가로, 세로 크기가 500px 인 경우, 고정된 값으로 나오는 반면,
500dp 인 경우, 계산된 값으로 아래와 같이 출력된다.
결론적으로 !!
안드로이드에서는 dp 라는 단위를 사용하며
자체적으로 px 로 계산을 해서 디바이스별로 출력해준다.
728x90
반응형
LIST