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