Home » Android » android – Ripples with border for a TextView?

android – Ripples with border for a TextView?

Posted by: admin June 15, 2020 Leave a comment


I have few TextViews that are displayed beside each other. Currently, I use android:background="?attr/selectableItemBackground" to get the ripple on touch.

Now, I would like to add borders to the TextViews when they are not pressed and have the ripple when the TextView is touched. How do I do that?

How to&Answers:

Based on a Styling Android blog post:

Another way that we can confine the bounds of a ripple animation is to
actually define a shape drawable as a child

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
                android:width="1dp" />

Here the <solid> in <shape> is needed for the ripple to render. If set to transparent or omitted, the ripple doesn’t render. The ripple needs a solid background to render on. TextViews don’t have a background color so we need to specify a <solid>.