출처 : 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
Posted by outliers
,