버튼이나 컴포넌트에 press 효과를 주기 위해서는 drawable에 xml파일을 정의 합니다.

일반 버튼일 경우

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

 <item android:state_checked="true" // 체크 되었을 경우

     android:drawable="@drawable/ic_check_box_24dp" />

    <item android:state_checked="false" // 언체크 되었을 경우

        android:drawable="@drawable/ic_check_box_outline_24dp" />

</selector>

-----------------------------------------------------------------------------------------------------
컬러로 주고 싶은 경우

"@color/colorButtonPress" 와 "@color/colorButton"에 원하는 컬러를 넣어 주면 됩니다.

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" > //눌렸을 경우

        <shape android:shape="rectangle">

            <solid android:color="@color/colorButtonPress" />

        </shape>

    </item>

    <item> // 안눌렸을 경우

        <shape android:shape="rectangle">

            <solid android:color="@color/colorButton"/>

        </shape>

    </item>

</selector>

-----------------------------------------------------------------------------------------------------


레이아웃에서의 정의는 android:background="@drawable/button_selector" 과 같이 정의해주시면 됩니다.

<Button

                android:id="@+id/get_content_cancel_btn"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:layout_weight="1"

                android:background="@drawable/button_selector"

                android:text="@string/cancel"

                android:textColor="@color/white"

                android:textStyle="bold" />

728x90
반응형

+ Recent posts