- 화면크기 : 화면의 실제 물리적 크기이미, 화면의 대각성 크기로 측정됩니다. 단순화하기 위해 Android에서는모든 실제 화면 크기를 네 가지 일반화된 크기 그룹으로 분류합니다
+ 초대형 화면 : 최소 960dp x 720dp
+ 대형 화면 : 최소 640dp x 480dp
+ 보통 화면 : 최소 470dp x 320dp
+ 소형 화면 : 최소 426dp x 320dp
- 화면 밀도 : 물리적 화면 공간 안에 있는 픽셀의 개수이며, 일반적으로 dpi(dots per inch:인치당 도트수)라고 부릅니다. 단순화하기 위해 Android에서는 모든 실제 화면 밀도를 여섯 가지 일반화된 밀도 그룹으로 분류합니다.
+ ldpi (저밀도) ~120dpi
+ mdpi (중간 밀도) ~160dpi
+ hdpi (고밀도) ~240dpi
+ xhdpi (초고밀도) ~320dpi
+ xxhdpi (초초고밀도) ~480dpi
+ xxxhdpi (초초초고밀도) ~640dpi
DPI(Dots Per Inch)
- 1인치(2.54 센티미터)에 들어있는 픽셀의 수입니다. 안드로이드에서는 160을 기본으로 합니다.
dp : 밀도 독립적 픽셀(Density-independent Pixels)
- UI 레이아웃을 정의할 때 레이아웃 치수나 위치를 밀도 독립적 방식으로 표현하기 위해 사용해야 하는 가상 픽셀 단위 입니다.
밀도 독립적 픽셀이란 160dpi 화면의 물리적 픽셀 하나를 말하며, 이것은 시스템에서 "보통" 밀도 화면에 해당하는 기준 밀도입니다. 사용 중인 화면의 실제 밀도에 따라, 시스템이 런타임에 dp 단위의 모든 확대/축소를 투명하게(transparent) 처리합니다. dp단위를 화면 픽셀로 변환하는 것은 간단합니다.
px = dp * (dpi / 160)
dp = (px * 160) / dpi
(무슨 말이냐 하면 160 density(dpi)인 해상도에서 1dp = 1px 이라는 말입니다.)
layout_width="100dp"인 뷰는 중간 밀도 화면에서 100 픽셀 너비로 측정되고 고밀도 화면에서는 시스템이 이것을 최대 150 픽셀로 확대하므로, 이 뷰는 화면에서 물리적으로 거의 동일한 공간을 차지합니다.
다른 밀도의 화면에 UI 가 적절히 표시되도록 하려면, 애플리케이션 UI를 사용할 때 항상 dp 단위를 사용해야 합니다.
-sp : 텍스트 크기를 정의하는 경우 sp(배율 독립적 픽셀 : Scale-independent Pixels)를 사용해야 합니다. sp 배율은 사용자 설정에 따라 다르며, 시스템은 dp의 경우와 동일하게 크기를 확대/축소합니다.
개념은 충분히 한거 같으니 해상도별 대응방법을 알아보도록 하자
보통은 이렇게 values에 directory를 만들고 그 안에 dimens.xml를 정의하는 방법을 사용하는것 같다.
https://offbyone.tistory.com/229
안드로이드 크기 단위(dp, sp, pt, px, mm, in)
안드로이드 위젯의 크기를 지정할 때 사용되는 단위에 대해서 알아보겠습니다. 결론부터 말하자면 위젯의 크기는 "wrap_content", "match_parent" 또는 dp 단위를 사용하는것이 좋습니다. 텍스트의 크기
offbyone.tistory.com
https://tadomstudio.tistory.com/4
[안드로이드 / android] 해상도에 대한 이해
안드로이드 해상도를 이해하기 위해서는 크기의 단위(Dipmension)인 DP의 개념을 먼저 잡고 출발해야 합니다. 그래서 DP에 대한 설명을 먼저 드리고 이어서 DPI, px에 대해서도 알아보겠습니다. DIP (Dev
tadomstudio.tistory.com
'안드로이드' 카테고리의 다른 글
Recyclerview 성능 개선 팁 (0) | 2022.02.15 |
---|---|
[Kotlin] 안드로이드 RecyclerView TextWatcher + Filterable로 검색기능 구현 (0) | 2022.02.14 |