스마트폰/안드로이드

android에서 다양한 스크린 사이즈에 맞춰서 view를 보여주려면

나를찾는아이 2017. 11. 1. 18:12
728x90
반응형

안드로이드는 굉장히 다양한 종류의 디스플레이 크기가 있습니다.


어떠한 괴상한 모양이 있다고 하더라도 전혀 이상할것이 없습니다.



대략 우리앱의 사용자가 4인치에서 6인치 정도의 크기의 디스플레이를 가진 사람들 밖에 없다라고 하면


하나의 layout xml 파일만으로


match_parent와 wrap_content를 조합하여 잘만 사용해도,


이 크기의 디스플레이들에는 잘 적용할수 있을것입니다.



그런데 6인치가 넘어가는 태블릿급의 기기들도 많고,


요즘에 보기에 다소 작다고 볼수 있는 3인치대의 스크린을 가진 기기도 많습니다.



이러한 기기들에서는 하나의 layout xml을 이용해서 match_parent와 wrap_content를 조절하는 것만으로


디자인적인 만족을 채우기란 약간 아쉽습니다.



큰 화면에서는 두줄로 보여줄거 한줄로 보여줄수도 있고,


작은 화면에서는 글자크기를 좀 더 줄이고 여백을 좀더 줄여야할 필요도 있고 말이죠.



이런걸 일일이 코드로 구현하기보다는 layout 파일 통해서 관리하시면 편하고 좋습니다.



우리의 안드로이드 프로젝트 폴더는


res 폴더안에


drawable

layout

values


폴더들을 포함하고 있는데요



res/layout/my_layout.xml              // layout for normal screen size ("default")

res/layout-large/my_layout.xml        // layout for large screen size

res/layout-xlarge/my_layout.xml       // layout for extra-large screen size

res/layout-xlarge-land/my_layout.xml  // layout for extra-large in landscape orientation



이런식으로 


layout에 쓸수 있는 다양한 한정자들이 제공됩니다.



위의 예제로 사용된 large, xlarge같이 크기 한정자들은 android 3.2부터는 지원이 중단됩니다.



대신에 sw600에, sw720dp, w720dp, h720dp 같은 한정자들을 사용할수 있는데요



쉽게 말해서 가로가 600dp 이상일때


720dp 이상일때 적용가능되는 layout 파일들은 각각의 폴더에 넣을수 있죠.



소스코드의 변경없이


layout 폴더를 추가하고 수정한것만으로 레이아웃을 해상도 별로 쉽게 조절할수 있으니 참 좋습니다



https://developer.android.com/guide/practices/screens_support.html?hl=ko#support


728x90
반응형