프로그래밍/안드로이드+코틀린
[Android] Ripple view에 맞게 적용시키기
이원중
2021. 6. 23. 16:58
반응형
이렇게 리플(Ripple) 효과가 view의 범위를 벗어난다.
그냥 넘어갈 수도 있지만 너무 눈에 거슬리기 때문에 수정해보자.
기존 코드는 아래처럼 매우 간단했다.
<!--ripple_temp.xml-->
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/dim_gray">
</ripple>
아래처럼 수정해주면 된다.
<!--ripple_working-->
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/dim_gray">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/black" />
<corners android:radius="20dp" />
</shape>
</item>
</ripple>
솔직히 작동원리는 모르겠는데, item을 추가하고 radius를 기존 view의 radius의 맞게 주면 된다.
또한 item의 id를 mask로 해야 하며, solid나 shape를 없애면 작동하지 않는다!
view밖으로 ripple효과가 나가지 않는 것을 확인할 수 있다!!
반응형