안드로이드 개발에서 사용하는 UI의 크기 단위이다.
이것에 대해 알기전에 픽셀부터 알아야 한다.
픽셀(pixel, px)
화소라고도 한다.
화면을 구성하는 기본 단위이다.
해상도랑 관련이 있는 것으로 같은 그림이나 영상을 나타낸다 하더라도 픽셀의 수가 많은 것이 해상도가 높은 것이다.
이를 위해 추가적으로 설명해야 하는 것이 dpi(dot per inch)란 것이다.
dpi란 1인치 공간에 포함된 점 또는 픽셀의 수를 말한다.
같은 크기의 공간이라도 픽셀의 수가 더 많을수록 세세하게 표현되므로 해상도가 높은 것이다.
이제 크기가 다른 A, B라는 두 핸드폰 기기에서 한 이미지를 px단위로 그린다고 보자.
A는 100x100크기이고 B는 50x50크기라고 치자.
이미지를 25x25크기로 그리면 A에선 4분의 1정도의 크기를 차지하고 B에선 반을 차지하는 상황이 오게된다.
즉 기기에 따라 일관성 없이 다른 크기가 그려지는 문제가 발생한다.
그래서 생긴 것이 dp(device-independent pixel 또는 density-independent pixel)이다.
결국 dp란 해상도에 관계없이 이미지를 표현하기위한 크기 단위이다.
기본적으로 160dpi 해상도를 기준으로 px로 계산한다.
dp와 px 계산식은 아래와 같다.
dp = px / (기기dpi / 160dpi)
px = dp * (기기dpi / 160dpi)
160dpi에서 1dp = 1pixel이다.
기기의 크기(또는 해상도)가 달라지더라도 dp를 통해 알아서 px크기로 변환되어 같은 비율의 이미지로 보이게 된다.
코드는 아래 링크에 작성되어 있다.
'개발 > Android' 카테고리의 다른 글
버튼 텍스트 소문자로 보이게하기 (0) | 2022.02.24 |
---|---|
가로 세로 화면 크기 가져오기 (getRealSize() deprecated) (1) | 2022.02.22 |
dp px 변환 (0) | 2022.02.19 |
URL로 링크 열기 (0) | 2022.02.17 |
ActionBar 제거 (0) | 2022.02.13 |