XML로 커스텀 버튼 만들기

2019. 2. 18. 12:50Programming/Android

반응형

버튼을 만들기 위해 디자이너분께 이미지를 요청했더니, 이미지를 네 장 전달받았다. 일반(Normal), 비활성화(Disabled), 눌렸을 때(Pressed), 선택됐을 때(Selected)로 추정된다. Drawable의 상태는 StateListDrawable, Android Developers을 참조하자. 이 이미지를 하나의 버튼으로 만들려면 다음의 과정을 거치면 된다.

  • Drawable에 xml파일을 생성하고, 각 상태별 이미지를 지정해준다.
  • 완성된 xml파일을 Button의 Background로 지정해준다.

상당히 간단하다. 우선 Drawable에 xml파일을 하나 생성해준다. 내가 가지고 있는 이미지는 button_normal, button_disabled, button_pressed, button_selected이므로, 아래와 같이 작성했다.


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_pressed"></item>
    <item android:state_pressed="false" android:state_enabled="true" android:drawable="@drawable/button_normal"></item>
    <item android:state_enabled="false" android:drawable="@drawable/button_disabled"></item>
    <item android:state_pressed="true" android:state_enabled="true" android:drawable="@drawable/button_selected"></item>
</selector>

이미지가 없을 경우에는 item 이하에 shape를 통해서 직접 그려주는 것도 가능하다. 이미지가 없는 경우에는 android 커스텀 xml 둥근버튼 만들기, Commin님의 글을 참조하자.

반응형