버튼의 상태에 따라서 버튼의 스타일을 다르게 지정할 수 있다.
이것을 하는 방법은,
1. 자바파일에서 한다.
2. xml에서 한다.
두가지 방법이 있다.
개인적으로는, 두번째 방법이 좀 더 깔끔하고 정리도 잘되는것 같다.
그렇다면, xml에서 처리하는 방법에 대해서 알아보자.
1. res/drawable 폴더에 xml을 생성한다.
res/drawable/btn_style.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/button_focus" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:drawable="@drawable/button_normal" />
</selector>
color로도 가능하다.
예는 다음과 같습니다.
color_back.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/more_more_light_gray" />
<item android:drawable="@color/white" />
</selector>
가능한 상태는 다음과 같다. 적절하게 사용하자.
android:state_focused
android:state_pressed
android:state_enabled
2. 선택하고자 하는 버튼에 배경으로 설정한다.
<Button android:background="@drawable/btn_style" ....... />
(자바소스에서 지정해도 된다. btn.setBackgroundResource(R.drawable.btn_style));
주의!!
아이템의 순서는 버튼의 기능에 영향을 미친다.
가.
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:drawable="@drawable/button_normal" />
나.
<item android:drawable="@drawable/button_normal" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_pressed" />
가와 나는 다르게 작동한다는 뜻.
안드로이드 공식 링크는 다음과 같다.
아무래도, 개발자 사이트에서 보는게 좋겠다.
http://developer.android.com/guide/topics/resources/color-list-resource.html
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
안드로이드 공식 링크는 다음과 같다.
아무래도, 개발자 사이트에서 보는게 좋겠다.
http://developer.android.com/guide/topics/resources/color-list-resource.html
http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList
'Programming > android' 카테고리의 다른 글
android에서 외부(sdcard) db를 열려면? (0) | 2011.02.08 |
---|---|
예제로 시작하는 안드로이드 개발 (1) | 2011.01.13 |
안드로이드 더블 클릭 (0) | 2011.01.12 |
안드로이드 키보드 옵션 (3) | 2011.01.12 |
안드로이드 상태바 사이즈 구하기 (0) | 2011.01.06 |