Android2012. 2. 3. 17:25

보통 레이아웃을 작성할 때 디바이스에 따른 Density 값 때문에 최대한 비율에 맞춰서 어느 디바이스에서든지 레이아웃의 틀어짐 없이 보여주려고 하는데 Android 기본 UI를 사용함에 있어서 디바이스 별로 차지하는 비율이 틀려질 때가 있어서 전체적인 레이아웃이 어색해지는 경우가 생긴 적이 있어서 글을 작성해 봅니다.

우선 많이 사용하는 Spinner를 가지고 있는 디바이스 별로 테스트 해보았습니다.


갤럭시S2

모토로이

갤럭시탭7

Device Spinner가 폰 별로 모양도 틀리고 심지어 모토로이의 경우엔 보여지는 Height의 비율이 상대적으로 좁기까지 하네요. 반면에 Android-8,-13의 경우엔 폰 별로 모양과 Height의 비율이 일정하고요.

요렇게 폰 별로 틀려지는 것을 어떻게 쉽게 통일 시킬 수 있을까 생각하다가 Android SDK 폴더에 있는 버전 별 플랫폼 폴더가 생각나서 들어가보니 9패치 이미지와 xml까지 다 있더군요.

안드로이드SDK폴더/platforms/platforms-13/data/res/

- xml은 drawable 폴더에
- 9패치 이미지들은 drawable-hdpi 폴더에 있습니다.

우선 Spinner와 관련된 이미지와 xml을 찾아 개발중인 프로젝트에다 복사만 해주시고 아래와 같이 사용될 Spinner에 Background로 지정해 사용할 수 있습니다.

<!—사용될 Spinner에 가져온 기본 컴퍼넌트 UI 사용 –->

<Spinner
    android:id="@+id/sp_a13"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/btn_dropdown_a13"
/>

Spinner말고도 다른 SDK내부에 있는 기본 UI들을 활용해 폰 별로 어색해지는 디자인을 살짝 보완할 수 있지 않을까 생각해봅니다.

 

Posted by ™설야