android – Ripple effect for lollipop views-ThrowExceptions

Exception or error:

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"
   />
How to solve:

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".

###

Try this:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="?attr/selectableItemBackground"
    ...
 />

Based on this tutorial and the official docs

###

Also ?attr/selectableItemBackgroundBorderless canbe used for circular ripple effect.

###

Try this attribute

android:background="?attr/selectableItemBackground"

This is the simplest way to show ripple effect in your view/layout.

Leave a Reply

Your email address will not be published. Required fields are marked *