출처 : http://marga.tistory.com/598
프롤로그
안드로이드는 특유의 파편화 문제로 여러 폰을 지원하다 보면 여러 종류의 layout을 만들어야 하는 경우가 있다.
그런데 여기서 또 문제가, 안드로이드는 OS버젼별로 Layout의 인식 순서가 다르다는 데 있다.
덕분에 이걸 모르면 개 삽질을 미친듯이 해야 하고 (아놕 시팍ㅋㅋ경험담ㅋㅋㅋ)
결국 해상도별 픽셀 layout을 만드는 짓(!)을 해서 훗날 유지보수를 어렵게 만들게 된다.
그리고는 "어쩔 수 없다" 라는 말을 할 수 밖에 없는 상황을 발생시킨다. (이게 무슨 멍멍이 같은 상황인가ㅋㅋㅋ)
안드로이드 OS별 Laout 폴더 인식 순서는 간단히 아래와 같다.
OS 4.x 의 Layout 인식 순서
자신의 sw_dp > 낮은 sw_dp > 자신의 w_dp > 낮은 w_dp > 자신의 dpi > 존재하는 dpi 폴더 중 높은 dpi > 낮은 dpi > 자신의 해상도 > 낮은 해상도 > layout
OS 3.x 의 Layout 인식 순서
자신의 sw_dp > 낮은 sw_dp > 자신의 w_dp > 낮은 w_dp > 자신의 dpi > 본인 해상도 1024x768 > 낮은 해상도 > layout > 높은 dpi
OS 2.x 의 Layout 인식 순서
자신의 dpi > 높은 dpi > 낮은 dpi > 자신의 해상도 > layout
그래서, 몇가지 폰의 예를 들면 다음과 같다.
(아래 결과는 폰에서 직접 확인 된 사항이다.)
갤럭시S3 (OS : 4.x, 해상도 : 720 X 1280)
layout-sw360dp
layout-sw320dp
layout-w360dp
layout-w320dp
layout-xhdpi
layout-hdpi
layout-mdpi
layout-1280x720
layout-960x540
layout-800x480
layout-480x320
layout
옵티머스 2X (OS : 4.x, 해상도 : 480 X 800)
layout-sw320dp
layout-w320dp
layout-hdpi
layout-xhdpi
layout-mdpi
layout-800x480
layout-480x320
layout
갤럭시탭 (OS : 3.2, 해상도 : 1280 X 800)
layout-sw400dp
layout-sw384dp
layout-sw360dp
layout-sw320dp
layout-w400dp
layout-w384dp
layout-w360dp
layout-w320dp
layout-mdpi
layout-1024x768
layout-960x540
layout-800x480
layout-480x320
layout
layout-hdpi
layout-xhdpi
옵티머스 빅 (OS : 2.3, 해상도 : 480 X 800)
layout-hdpi
layout-xhdpi
layout-mdpi
layout-800x480
layout
옵티머스 원 (OS : 2.2, 해상도 : 320 X 480)
layout-mdpi
layout-480x320
layout-hdpi
layout-xhdpi
layout
'Programs > Android' 카테고리의 다른 글
ANDROID DP/PX CONVERTER (0) | 2014.08.28 |
---|---|
안드로이드 Resource 확장 적용 순서 (0) | 2014.08.26 |
바탕화면 실행아이콘 크기 (0) | 2014.08.18 |
GCM(Google Cloud Message) (0) | 2014.08.01 |
Java 에서 한글 체크 (1) | 2014.04.24 |