ARCHIVES

태그

신고하기

상단 메뉴 페이지

기본 콘텐츠로 건너뛰기

[Flutter] 해상도 시스템

원문: https://points.tistory.com/66


Android에서는 dp(Density-independent Pixel) 단위를 썼다면, Flutter에서는 Logical Pixel 단위를 사용합니다. 단위만 다를 뿐 실제로 안드로이드의 dp 단위와 동일합니다.

이미지의 경우에는 res/drawable-* 형태의 폴더명으로 이미지를 분류했다면, Flutter에서는 iOS와 동일하게 2.0x, 3.0x와 같은 폴더명을 사용하여 이미지를 분류합니다.

Densitydots per inchdots per cmFlutter Image Folder
ldpi12047.20.75x
mdpi16062.91.0x
hdpi24094.51.5x
xhdpi320125.92.0x
xxhdpi480188.93.0x
xxxhdpi640251.94.0x

장치의 해상도를 얻는법

MediaQuery를 통해서 해상도에 관한 정보를 손쉽게 얻을 수 있습니다.

1
2
3
4
5
6
7
Column(
    children: <Widget>[
        Text('displaySize : ${MediaQuery.of(context).size}'), //너비, 높이 (392.7, 759.3)
        Text('devicePixelRatio : ${MediaQuery.of(context).devicePixelRatio}'), //픽셀밀도 (2.75)
        Text('statusBarHeight : ${MediaQuery.of(context).padding.top}'), //상태바 높이 (24.0)
    ],
),

iOS 스크린정보

스마트폰배율Logical Pixel비율크기
iPhone 3GS 이하1.0x320x4803:23.5
iPhone 42.0x320x48016:93.5
iPhone 52.0x320x56816:94
iPhone 6/7/83.0x375x66716:94.7
iPhone 6/7/8 Plus3.0x414x73616:95.5
iPhone X3.0x375x81219.5:95.8
iPhone Xs Max3.0x414x89619.5:96.5

댓글