올해는 머신러닝이다.
Android selector 관련 팁 본문
Android selector ├뷰
2011/01/05 11:40 |
step 1. View의 각 상태에 맞는 이미지를 준비합니다.
res/drawable 폴더내에 두어야하는건 아시죠?!
(image를 nine patch해서 사용하시면 좋겠죠...^~^)
normal | 활성화 상태, View.setEnabled(true)상태와 같다. 빠져서는 안되는 필수요소입니다. |
disable | 비활성화 상태, View.setEnabled(false)상태와 같다. 필요할 때 선언할 수 있는 선택요소입니다. |
focused | EditText에서 입력 대기 상태, 즉 커서가 깜박이는 경우에 해당합니다. 또는 비활성화 상태에서 selected 된 상태입니다. 필요할 때 선언할 수 있는 선택요소입니다. |
pressed | Button 종류의 View가 눌려진 상태, View 종류의 View가 터치된 상태입니다. 빠져서는 안되는 필수요소입니다. |
selected | device의 트랙볼이나 dpad, 방향키로 View가 선택된 상태. 이 때, state_window_focused 상태는 true가 됩니다. 요즘 기기들 중 쿼티 자판이 있는 경우를 제외한 기기들은 이 상태를 쓸 경우가 별로 없습니다. 왜냐하면 기본 입력 방식이 터치니깐요...=_= 필요할 때 선언할 수 있는 선택요소입니다. |
step 2. res/drawable 폴더내에 아래와 같은 형식의 .xml 파일을 생성합니다.
res/drawable-hdpi/btn_white_stone.xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> /!-- 아래 두 개의 선언은, 그래도 혹시 모르니 selected 상황이 해제되었을 때를 대비해 추가해 두는게 좋습니다. --/ <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_normal" /> <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/btn_disable" /> <item android:state_pressed="true" android:drawable="@drawable/btn_square_pressed" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_square_selected" /> /!-- 아래의 선언이 없을 경우 selected 상황에서는 버튼이 보이지 않습니다. --/ <item android:state_enabled="true" android:drawable="@drawable/btn_square_normal" /> <item android:state_focused="true" android:drawable="@drawable/btn_square_focused" /> /!-- 아래의 선언이 없을 경우 selected 상황에서는 버튼이 보이지 않습니다. --/ <item android:drawable="@drawable/btn_square_disable" /> </selector> |
그래서 필자는 보통은 아래와 같이, 보통상태와 버튼이나 뷰가 눌러졌을 때의 상태, 두 경우만 선언해서 사용하고 있습니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_help_normal" />
<item android:state_pressed="true" android:drawable="@drawable/btn_help_pressed" />
<item android:state_enabled="true" android:drawable="@drawable/btn_help_normal" />
</selector> |
step 3. Button의 background로 위에서 생성한 drawable을 지정합니다.
res/layout/layout.xml <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Test Button" android:background="@drawable/btn_white_stone" /> |
[출처] Android selector|작성자 jolangma
'Android > Tip&Tech' 카테고리의 다른 글
예제소스모음 (4) | 2011.05.02 |
---|---|
Custom Tab Tip (1) | 2011.04.29 |
ndroid Fake Iphone UI 2 Source (0) | 2011.04.29 |
태스크란? (Task, Activity Stack)어피니티란? (Android Affinity)플래그란? (0) | 2011.04.27 |
c2dm 에 관한 또다른 참고내용 (0) | 2011.04.26 |