태블릿을 개발하다보면 새로나오는 태블릿마다 해상도가 깨지는 현상이 발생한다.
DP로 정해줘도 태블릿이 새로나오면 UI가 깨지는 현상이 발생된다.
이유는
1. 해상도가 다르다.
2. DPI가 다르기 때문이다.
아래에 표를 보면 태블릿의 DP해상도는 크게 3개의 크기로 구분 할 수 있을거 같다.
1280 * 800
1024 * 768
960 * 600
*참고1) PX/DPI = DP , DP*DPI = PX
*참고2) smallestWidth(DP)는 가로,세로의 상관없이 가장 적은 비율의 값
*참고 표1 Orientation = LandScape 기준으로 작성
기종 |
PX |
DPI | DP |
smallestWidth(DP) |
||
WIDTH |
HEIGHT |
WIDTH |
HEIGHT | |||
Galaxy Note 10.1 2014 Edition |
2560 |
1600 |
2 |
1280 |
800 |
800 |
Galaxy Note 10.1 |
1280 |
800 |
1 |
1280 |
800 |
800 |
Galaxy Tab 10.1 |
1280 |
800 |
1 |
1280 |
800 |
800 |
Galaxy Tab 8.9 |
1280 |
800 |
1 |
1280 |
800 |
800 |
Galaxy Tab A(2016) |
1920 |
1200 |
1.5 |
1280 |
800 |
800 |
Galaxy Tab S2 |
2048 |
1536 |
2 |
1024 |
768 |
768 |
Galaxy Tab A 9.7 |
1024 |
768 |
1 |
1024 |
768 |
768 |
Nexus 9 |
2048 |
1536 |
2 |
1024 |
768 |
768 |
Galaxy Tab S3 | 2048 | 1536 | 2.25 | 910.2 | 682.7 | 682.7 |
Galaxy Tab E(W/B) | 1280 | 800 | 1.33 | 961.5 | 600.9 | 600.9 |
G Pad3 8.0 | 1920 | 1200 | 2 | 960 | 600 | 600 |
위에 표를 보았을 때 느낀점은 Galaxy Tab S3는 왜 DPI가 저럴까?;; 필자도 궁금하다.
태블릿마다 해상도가 깨지는 현상이 발생시 수정방법은 여러가지가 있겠지만 그중에 2가지를 들 수 있을거 같다.
방법 1.직접적으로 layout 폴더를 분기 처리한다.
장점
-부분적으로 고치기 딱좋다고 생각된다. UI가 중첩되거나 깨지는 부분만 고치면 되기 때문이다.
단점
-UI가 중첩되거나 깨지는 부분만 고치게 될 경우 UI가 언밸런스 해보일 수 있다.
참고 표2
레이아웃 폴더 분기 종류 |
설명 |
비고 |
layout |
기본레이아웃 |
|
layout-port |
가로모드시 레이아웃 적용 |
|
layout-land |
세로모드시 레이아웃 적용 |
|
layout-sw600dp |
smallestWidth의 값이 600dp이상일 경우 적용 |
1. smallestWidth의 값이 650dp이고 layout-sw600dp, layout-sw651dp폴더가 있을경우 smallestWidth 650dp의 값은 layout-sw600dp에 영향을 받는다. 2. 폴더명 뒤에 -port,-land는 적용 되지 않는다. |
layout-w600dp-port |
세로모드의 넓이 dp값이 600이상일 경우 레이아웃 적용 |
세로모드의 넓이 dp값이 650이고layout-w600dp-port, layout-w651dp-port폴더가 있을경우 650dp의 값은 layout-w600dp-port에 영향을 받는다. |
layout-w600dp-land | 가로모드의 넓이 dp값이 600이상일 경우 레이아웃 적용 | 가로모드의 넓이 dp값이 650이고 layout-w600dp-port, layout-w651dp-port폴더가 있을경우 650dp의 값은 layout-w600dp-port에 영향을 받는다. |
방법 2.직접적으로 value폴더의 diman.xml를 분기 처리한다.
장점
-UI를 한꺼번에 고치기 딱 좋다. 깨지는 태블릿의 비율만 계산하여 폴더 분기 처리하면 한꺼번에 적용되기 때문이다.
단점
-비율계산이 잘못될 경우 기존 UI가 망가질수 있다.
참고 표3
-해상도 비율
해상도 |
비율 |
1280*800 |
8:5 |
1024*768 |
4:3 |
960*600 |
8:5 |
'Android' 카테고리의 다른 글
안드로이드 스튜디오 compile 대체할 implementation, api (0) | 2018.05.04 |
---|---|
안드로이드 dataBinding 사용하기 (0) | 2017.12.26 |
안드로이드 앱설치 여부 확인 (0) | 2017.10.11 |
Manifest에 정의된 값 가져오기 (0) | 2017.10.11 |
안드로이드 Manifest android:excludeFromRecents속성 (0) | 2017.07.04 |