본문 바로가기

프로그래밍/안드로이드

안드로이드 버튼 상태에 따라 배경이미지 바꾸기

버튼에 이미지 꾸미기는 해놓으면 편하다. 근데 이미지가 다른경우는 해보신분은 알겠지만서도 개노다가성이 짙은 놈이더군요.

보통 저는 drawable폴더안에 머시기.xml 형태로 두어 selector를 사용하는 방법을 쓰게 됩니다.
그상태값은
android:state_focused
android:state_pressed
android:state_enabled

등이 있답니다.

res/drawable 폴더안에다가 만들죠.
push_menu_ok.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/btn_ok"></item>

   <item android:state_pressed="true"
   android:drawable="@drawable/btn_pressed" /> 

   <item android:state_focused="true"
   android:drawable="@drawable/btn_focus" /> 

   <item android:state_enabled="false"
   android:drawable="@drawable/btn_enabled_not" /> 

</selector>


사용하실때는 버튼의 배경으로 위의 파일을 설정해주시면 됩니다.

ImageButton btn = (ImageButton)this.findViewById(R.id.btn01);

btn.setBackgroundResource(R.drawable.push_menu_ok);