일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Android
- androidstudio
- bitmap
- BOJ
- Canvas
- CS
- Database
- DBeaver
- DP
- Ecilpse
- Eclipse
- firebase
- git
- github
- GooglePlayServices
- gradle
- IDE
- IntelliJ
- java
- json
- kotlin
- level2
- linux
- mariadb
- MYSQL
- Paint
- permission
- python
- Sorting
- sourcetree
Archives
will come true
[Android] 안드로이드 기기의 크기 정보, DisplayMetrics 본문
728x90
안드로이드 시스템 기기 크기
크기 | 설명 | 픽셀 | 배율(x) |
ldpi | 저밀도 화면, ~120dpi | 240 x 320px | 0.75x |
mdpi | 중밀도 화면, ~160dpi | 360 x 480px | 1x (=baseline) |
hdpi | 고밀도 화면, ~240dpi | 480 x 800px | 1.5x |
xhdpi | 초고밀도 화면, ~320dpi | 720 x 1280px | 2.0x |
xxhdpi | 초초고밀도 화면, ~480dpi | 1080 x 1920px | 3.0x |
xxxhdpi | 초초초고밀도 화면, ~640dpi | 1440 x 2560px | 4.0x |
*dpi(dots per inch) : 1인치 안에 있는 도트의 개수
안드로이드는 mdpi 폰을 기준으로 크기를 조정하며, mdpi 폰에서 1dp는 1px이다.
화면을 구성하는 화소 수가 많은 만큼 1dp가 x배로 많은 픽셀을 차지해야만, 육안으로 봤을 때 화면 크기(dpi)에 적합한 이미지가 출력된다. 예를 들어 mdpi에서 1픽셀을 차지하던 1dp 검은 점 하나를 → 2배의 화소 수를 가지는 xhdpi에서도 똑같이 1픽셀을 차지하도록 출력하면 화면에 안맞게 굉장히 작은 점 하나가 출력되어 디스플레이 크기에 맞지 않다. 전체 화소 수가 2배인 만큼 점 하나가 차지하는 화소 수도 2배로 늘려줘야 화면 비율에 맞는 셈.
안드로이드 개발 크기 단위
- dp(dip : density-independent pixels) : 스크린의 물리적 밀도에 기반을 둔 단위
- sp(sip : scale-independent pixels) : dp와 유사, 글꼴 크기에 적용
- pt(points) : 스크린 크기의 1/72을 1pt로 함
- px(pixel) : 픽셀
- mm : 밀리미터
- in : 인치
DisplayMetrics 클래스
기기의 다양한 크기 정보를 제공한다.
- widthPixels : 가로 화소 수
- heightPixels : 세로 화소 수
- densityDpi : 화면 밀도
- density : mdpi를 기준으로 한 배율. 스케일링할 때 곱하는 값
- scaleDensity : 문자열 스케일링할 때 곱하는 값
- xdpi : 정확한 가로 밀도
- ydpi : 정화한 세로 밀도
※ 화면 정보를 가져오는 getRealMetrics() 메서드는 현재 버전(API 31)에서는 @Deprecated 되었다.
참고자료
- Do it! 깡쌤의 안드로이드 프로그래밍 with Kotlin
728x90
'Android' 카테고리의 다른 글
[Android/Kotlin] Notification 알림 스타일 종류 및 실행 코드 (0) | 2022.01.06 |
---|---|
[Android/Kotlin] 상태바 알림(Notification), 채널(Channel) (0) | 2022.01.05 |
[Android] Android Studio에서 Github 연동하기 (0) | 2021.12.30 |
[Android/Kotlin] Chronometer 클래스로 스톱워치 구현하기 (0) | 2021.12.30 |
[Android/Kotlin] 안드로이드 뷰바인딩 하려는데 MainActivityBinding 클래스가 자동으로 생성안될 경우 해결법 (0) | 2021.12.23 |
Comments