App/Kotlin

[Android_Kotlin] 버튼 클릭 시 버튼 선택 이미지로 변경하기

Cune 2022. 3. 28. 10:42

 

 

하트버튼을 누르면 '빨간하트'로 별버튼을 누르면 '노란별'로 버튼 이미지 변경하기

 

 

layout.xml (플로팅 버튼만)

-> android:src="@drawable/xml파일이름" (selector-item을 적어둘 파일이름)

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:layout_below="@+id/HeartBtn"
        android:layout_alignRight="@+id/HeartBtn"
        android:src="@drawable/click_scrapbtn"
        android:id="@+id/ScrapBtn"/>

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true" app:srcCompat="@android:drawable/ic_menu_share"
        android:layout_below="@+id/ScrapBtn"
        android:layout_alignRight="@+id/ScrapBtn"
        android:id="@+id/floShareBtn"/>

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/click_likebtn"
        android:id="@+id/HeartBtn"/>

 

click_likebtn.xml (좋아요버튼)

선택했을때는 빨간하트 이미지로 바뀌도록 state_selected="true"

<?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/redheart"/>
    <item android:drawable="@drawable/blackheart"/>
</selector>

 

click_scrapbtn.xml (스크랩 버튼)

선택했을때는 노란별 이미지로 바뀌도록 state_selected="true"

<?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/yellowstar"/>
    <item android:drawable="@drawable/star"/>
</selector>

 

버튼 기본이미지랑 선택됐을때 바뀌는 이미지의 크기가 다를경우 버튼 크기에 따라서 사진이 안보일 수 있습니다!