Как программно использовать RippleDrawable в коде (не в формате xml) с Android 5.0 Lollipop?

У меня есть следующий код для моей пульсации:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item android:id="@+id/rip">

        <shape android:shape="oval">
            <solid android:color="?android:colorAccent"/>
        </shape>
    </item>
</ripple>

Теперь я хочу дать пользователю возможность выбирать собственные цвета, поэтому мне нужно создать пульсации программно.
я нашелэтот и я думаю, что это правильный способ сделать это, но я не знаю, как справиться с этим.

Волна будет использоваться здесь:

<ImageButton
    android:id="@+id/add_button"
    android:layout_width="@dimen/diameter"
    android:layout_height="@dimen/diameter"
    android:layout_gravity="end|bottom"
    android:layout_marginBottom="@dimen/add_button_margin"
    android:layout_marginEnd="@dimen/add_button_margin"
    android:layout_alignParentBottom="true"
    android:layout_alignParentEnd="true"
    android:src="@drawable/ic_action_add_person"
    android:tint="@android:color/white"
    android:background="@drawable/oval_ripple"
    android:elevation="@dimen/elevation_low"
    android:stateListAnimator="@anim/button_elevation"
    android:contentDescription="Neuer Spieler" />

Мне нужно установить фонRippleDrawable как это:

addButton.setBackground(ripple);

Ответы на вопрос(3)

Ваш ответ на вопрос