Add ripple effect to my button with button background color? Add ripple effect to my button with button background color? android android

Add ripple effect to my button with button background color?


Here is another drawable xml for those who want to add all together gradient background, corner radius and ripple effect:

<?xml version="1.0" encoding="utf-8"?><ripple xmlns:android="http://schemas.android.com/apk/res/android"    android:color="@color/colorPrimaryDark">    <item android:id="@android:id/mask">        <shape android:shape="rectangle">            <solid android:color="@color/colorPrimaryDark" />            <corners android:radius="@dimen/button_radius_large" />        </shape>    </item>    <item android:id="@android:id/background">        <shape android:shape="rectangle">            <gradient                android:angle="90"                android:endColor="@color/colorPrimaryLight"                android:startColor="@color/colorPrimary"                android:type="linear" />            <corners android:radius="@dimen/button_radius_large" />        </shape>    </item></ripple>

Add this to the background of your button.

<Button    ...    android:background="@drawable/button_background" />

PS: this answer works for android api 21 and above.


Add the "?attr/selectableItemBackground" to your view's android:foreground attribute if it already has a background along with android:clickable="true".


Add Ripple Effect/Animation to a Android Button

Just replace your button background attribute with android:background="?attr/selectableItemBackground" and your code looks like this.

      <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="?attr/selectableItemBackground"        android:text="New Button" />

Another Way to Add Ripple Effect/Animation to an Android Button

Using this method, you can customize ripple effect color. First, you have to create a xml file in your drawable resource directory. Create a ripple_effect.xml file and add following code.res/drawable/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="#f816a463"    tools:targetApi="lollipop">    <item android:id="@android:id/mask">        <shape android:shape="rectangle">            <solid android:color="#f816a463" />        </shape>    </item></ripple>

And set background of button to above drawable resource file

<Button    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/ripple_effect"    android:padding="16dp"    android:text="New Button" />