zaingz zaingz - 6 months ago 18
Android Question

Ripple effect for lollipop views

I have been developing an app for Lollipop (API 21).

When I change the

Button
color to something, the ripple effect doesn't works.

I found some third party libraries for the ripple effect, but I want to do this with standard API.

This answer didn't help either.

XML:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_below="@+id/textView"
android:background="@android:color/holo_blue_bright"
android:layout_alignParentStart="true"
android:layout_marginTop="76dp"
/>

Answer

You have to set your button's background to a RippleDrawable which you can define in XML. (I'll name it holo_blue_ripple.xml)

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@android:color/white"> <!-- ripple color -->

    <item android:drawable="@android:color/holo_blue_bright"/> <!-- normal color -->

</ripple>

Then reference it with android:background="@drawable/holo_blue_ripple".