티스토리 뷰

반응형
하나의 ImageView를 가지고 On/Off에 따라 다른 drawable을 설정하여 ToggleButton처럼 사용하는 방법에 대해 알아보겠습니다.

먼저 아래와 같이 ImageView에 적용할 xxx_selector.xml 을 작성합니다.

xxx_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@drawable/ic_bookmark_on" />
<item
android:drawable="@drawable/ic_bookmark_off" />
</selector>

그리고 아래와 같이 ImageView에 해당 xml을 src로 지정합니다.
<android.support.v7.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/xxx_selector"/>

그럼 이제 끝났습니다. 위와 같이 생성한 ImageView는 selected의 상태에 따라 각각 다른 drawable을 보여줄 것입니다.
true이면 on 상태의 drawable을, false이면 off 상태의 drawable을 해주도록 하였는데, 그 반대도 괜찮습니다.

그리고 ImageView의 onClickListener에서 아래와 같이 selected값을 다른 값으로 설정해주면 마치 Toggle버튼처럼 잘 동작하게 됩니다.

if (subscribe != null) {
subscribe.setSelected(!subscribe.isSelected());
}
반응형
댓글
공지사항
최근에 올라온 글