?android:attr/selectableItemBackground not visible enough on a dark background

android, android-5.0-lollipop, material-design

Solution

On API 21+ you can set `android:theme="@android:style/ThemeOverlay.Material.Dark"` on a `View` or `ViewGroup` to change all of the theme attributes (text color, ripple color, button color, etc.) to the "dark" versions. If you set it on a `ViewGroup`, the theme is also applied to all of the child elements during inflation. It's an easy way to have regions of "dark" in an otherwise "light" interface (or vice versa).

<LinearLayout
    android:id="@id/my_dark_layout"
    ...
    android:theme="@android:style/ThemeOverlay.Material.Dark">

    <TextView
        android:id="@id/my_dark_bounded_ripple"
        ...
        android:background="?android:attr/selectableItemBackground"
        android:text="Bounded ripple" />

    <ImageButton
        android:id="@id/my_dark_unbounded_ripple"
        ...
        android:background="?android:attr/selectableItemBackgroundBorderless"
        android:src="@drawable/my_icon" />

</LinearLayout>

Problem

On Android Lollipop, I'm using: ``` android:background="?android:attr/selectableItemBackground" ``` to have the material animated feedback when I click on a button. It works well when I have a button contained in a white/light layout, like a CardView for example. But when I want to use the same thing on a dark background, we barely see the effect, it is not visible enough. Does someone have an idea? Thank you

Original source