안드로이드 개발할때 쓰는 단위가 여러가지가 있습니다.
예를들어 layout 에서 textview의 위치나 크기를 입력할때는 dp를 쓰고 있습니다.
글씨의 크기를 지정할때는 sp를 사용하고 있습니다.
이런 용어들을 정리해봤습니다.
우선 아래 예제를 보면 sp, dp, pt를 사용하는 예제를 확인할 수 있습니다.
실제 layout 정보는 아래와 같습니다.
이제 각 단위에 대해 알아보겠습니다.
1. px
-. 픽셀 - 화면의 실제 픽셀에 해당합니다.
2. in
-. 인치 - 화면의 물리적 크기를 기준으로 합니다.
1인치 또는 2.54센티미터
3. mm
-. 밀리미터 - 화면의 물리적 크기를 기반으로 합니다.
4. pt
-. 포인트 - 화면의 실제 크기를 기준으로 1/72인치입니다.
5. DP 또는 dip
-. Density-independent Pixels -
화면의 물리적 밀도를 기반으로 하는 추상 단위입니다.
이러한 단위는 160dpi 화면에 상대적이므로 1dp는 160dpi 화면의 1픽셀입니다.
dp 대 픽셀 비율은 화면 밀도에 따라 변경되지만 반드시 정비례하지는 않습니다.
참고: 컴파일러는 "dip"와 "dp"를 모두 허용하지만 "dp"는 "sp"와 더 일관성이 있습니다.
6. sp
- . Scaleable Pixels OR scale-independent
dp 단위와 비슷하지만 사용자의 글꼴 크기 기본 설정에 따라 크기도 조정됩니다.
글꼴 크기를 지정할 때 이 단위를 사용하는 것이 좋습니다.
그러면 화면 밀도와 사용자의 선호도에 맞게 조정됩니다.
Android 문서는 sp가 실제로 무엇을 의미하는지에 대해 일치하지 않습니다.
"스케일 독립적 픽셀"이라고 말하고 다른 문서는 "스케일 가능한 픽셀"이라고 말합니다.
*. 참고 자료
Density BucketScreen DensityPhysical SizePixel Size
ldpi | 120 dpi | 0.5 x 0.5 in | 0.5 in * 120 dpi = 60x60 px |
mdpi | 160 dpi | 0.5 x 0.5 in | 0.5 in * 160 dpi = 80x80 px |
hdpi | 240 dpi | 0.5 x 0.5 in | 0.5 in * 240 dpi = 120x120 px |
xhdpi | 320 dpi | 0.5 x 0.5 in | 0.5 in * 320 dpi = 160x160 px |
xxhdpi | 480 dpi | 0.5 x 0.5 in | 0.5 in * 480 dpi = 240x240 px |
xxxhdpi | 640 dpi | 0.5 x 0.5 in | 0.5 in * 640 dpi = 320x320 px |
UnitDescriptionUnits Per Physical InchDensity Independent?Same Physical Size On Every Screen?
px | Pixels | Varies | No | No |
in | Inches | 1 | Yes | Yes |
mm | Millimeters | 25.4 | Yes | Yes |
pt | Points | 72 | Yes | Yes |
dp | Density Independent Pixels | ~160 | Yes | No |
sp | Scale Independent Pixels | ~160 | Yes | No |
'안드로이드 개발' 카테고리의 다른 글
안드로이드 키패드 숨기는 방법. InputMethodManager (0) | 2023.05.11 |
---|---|
java.lang.ClassCastException: androidx.emoji2.text.SpannableBuilder cannot be cast to java.lang.String (0) | 2023.05.11 |
[수정완료] FAILURE: Build failed with an exception. (0) | 2023.05.11 |
OutOfMemoryException 해결 방법 (0) | 2023.05.10 |
IOException 해결 방법 (0) | 2023.05.10 |