코딩스토리

[Android/android] Button 클릭 애니메이션 주기(Ripple Effect) 본문

Android/유용한 기술

[Android/android] Button 클릭 애니메이션 주기(Ripple Effect)

라크라꾸 2020. 9. 21. 21:15

이번 시간에는 버튼을 통해 앱을 조금 더 꾸밀 수 있는 Ripple Effect기능에 대해 소개하겠습니다.

 

다음과 같이 버튼을 클릭 했을 때 클릭한 위치에서 점점 퍼지는 애니메이션 효과를 줄 수 있습니다.

 

res>drawable폴더에 custom_ripple_effect.xml파일을 생성해줍니다.

custom_ripple_effect.xml

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="#FF00DD"> <!-- Ripple Effect 색상 -->

    <!-- 배경색 -->
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <solid android:color="#AABB00"/>
        </shape>
    </item>

</ripple>

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:gravity="center"
        android:background="@drawable/custom_ripple_effect"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

background속성에 아까 만들어준 custom_ripple_effect효과를 넣어주면 버튼 클릭 효과 애니메이션을 볼 수 있습니다.

Comments