[안드로이드] Ripple Effect
안드로이드에서 버튼을 클릭 및 터치 시에 파동처럼 퍼져나가는 이펙트를 Ripple Effect라고 한다.
이러한 리플 이펙트도 커스텀이 가능한데 총 2가지 방법이 있다.
1 . 아래의 내용을 이벤트를 주고자하는 view xml에 넣는다.
android:clickable="true"
android:background="?attr/selectableItemBackground"
2 . 다음과 같이 drawble forder 내에 ripple_effect.xml 파일을 만들어(이름은 마음대로 작명) effect 효과를 커스텀 하여 넣는 것이다.
ripple_effect.xml 예제 소스는 다음과 같다
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:color="@color/calcu_ripple_background"
tools:targetApi="lollipop"> <!-- ripple effect color -->
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="@color/calcu_numbers_background" /> <!-- background color -->
</shape>
</item>
</ripple>
원하는 색상과 모양 타겟버전 등을 커스텀 할수 있다.
android:background="@drawable/ripple_effect"
백그라운드 값을 커스텀한 값으로 변경해주면 완성!
단 이 때 보면 알 수 있지만, ripple_effect는 백그라운드에 들어가므로 백그라운드에 어떤 이미지나 컬러가 들어간 경우는 리플이 동작하지 않는다.