[Android] selector Drawable

selector Drawable은 상태에 따라 달라지는 Drawable로써, 상태는 enabled, selected 등이 있습니다. 버튼 등과 같은 UI에 적용함으로써 해당 버튼이 비활성되었을때, 선택되었을때에 따른 상태를 시각적으로 사용자에게 전달할 수 있습니다.

만약 상태를 enabled와 selected에 대해 구분한다면 총 3가지 Drawable이 필요한데, 기본 상태도 포함되어야 하기 때문입니다.

selector Drawable의 정의는 다음 예와 같습니다.

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

    <item
        android:state_selected="true"
        android:drawable="@drawable/ic_add_selected" />

    <item
        android:drawable="@drawable/ic_add" />
</selector>

selector를 구성하는 item의 순서가 중요한데, 가장 처음 해당되는 상태가 선택되기 때문입니다. 각 item에 대한 Drawable 중 enabled에 대한 ic_add_disabled.xml의 예시는 다음과 같습니다.

그리고 selected에 대한 ic_add_selected.xml의 예시는 다음과 같습니다.

마지막으로 기본 상태에 대한 ic_add.xml의 예시는 다음과 같습니다.

답글 남기기

이매일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다