개발 포스팅은 언제나 유통기한에 주의하세요
DPI(Dot Per Inch)
: 1인치당 점(pixel)의 개수
ldpi : 120dpi
mdpi : 160dpi
hdpi : 240dpi
xhdpi : 320dpi
xxhdpi : 480dpi
xxxhdpi : 640dpi
아래로 갈수록 인치에 들어가는 픽셀의 수가 높다.
즉 고화질을 의미한다.
여기서 생기는 문제점이 이미지를 px 단위로 가운데 놓았을 때
스마트폰이 점점 발전하여 dpi가 올라간다면
와 같이 동일한 크기를 표현하지 못하게 된다.
이를 해결하기 위해서 DP 개념이 존재한다.
DP(Device Independence Pixel)
: 디바이스 독립 픽셀
다양한 DPI에 맞게 변환될 추상 픽셀이라고 하는 거 같습니다.
mdpi를 기준으로
DPI가 커질수록 픽셀 값을 비례로 늘려 언제나 같은 크기를 보여주게 됩니다.
ldpi : 120dpi 1dp = 0.75px
mdpi : 160dpi(default) 1dp = 1px
hdpi : 240dpi 1dp = 1.5px
xhdpi : 320dpi 1dp = 2px
xxhdpi : 480dpi 1dp = 3px
xxxhdpi : 640dpi 1dp = 4px
그렇다면 이제 DP를 사용하면 끝인가?
모든 스마트폰에 같은 레이아웃을 사용하면 될까?
아니다. 스마트폰마다 다른 DP를 가지고 있기 때문에
태블릿이 아닌 스마트폰만을 위해 개발하더라도 DP에 따른 레이아웃을 만들어야 한다.
스마트폰 별 DP
레이아웃을 만들 때
세로의 경우 내용이 많은 경우 스크롤이 가능하게 만들기 때문에
가로에 대해서 집중하게 되는 것 같다.
세로의 경우에도 고정 DP와 가변적인 부분을 가지게 만든다면 아무런 문제가 없다.
하지만 모든 레이아웃에 디자이너 혹은 개발자가 가변적인 부분을 고려하는 것은
쉽지만은 않은 작업이라고 생각한다.
그렇기 때문에 다수의 폰이 가지고 있는 넓이인 360dp로 작업을 하고 예외적인 폰에 대응하는 것이 좋아 보인다.
예시로
갤럭시 S3(xhdpi) 9:16
720 x 1280
360dp x 640dp
갤럭시 S5(xxhdpi) 9:16
1080 × 1920
360dp x 640dp
갤럭시 S6(xxxhdpi) 9:16
1440 x 2560
360 x 640dp
갤럭시 S1(hdpi) 3:5
480 × 800
320dp x 533dp
넥서스4(xhdpi) 3:5
768 x 1280
364dp x 640dp
와 같은 스펙들을 가지고 있다
옛날 폰들이지만 갤S1과 넥서스4의 경우
360dp에 맞게 고정DP로만 레이아웃을 작성한다면
의도하지 않은 화면을 보여주게 될 것이다.
이 곳에 가면 스마트폰 별 해상도를 확인할 수 있다.
물론 저 또한 예외적인 레이아웃에 대해 처리해본 적이 없지만
아래 링크에 포스팅에 이와 관련한 내용을 가지고 있으니 참고하시면 좋을 것 같네요.
https://re-build.tistory.com/34
'창고' 카테고리의 다른 글
internal_storage (0) | 2020.02.26 |
---|---|
permission (0) | 2020.02.26 |
프로그래밍 용어 정리 (0) | 2019.05.27 |
xml로 도형 그리기 (0) | 2019.05.26 |
2019 드로이드 나이츠 (0) | 2019.04.26 |