Something like the following, but it doesn't work. If I switch the drawable color to something like blue, it works.
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight"> <item android:drawable="@android:color/transparent"/> </ripple>
What is Ripple effect in Android? Ripple effect provides an instantaneous visual confirmation at the point of contact when users interact with UI elements. These UI elements could be any of the View elements. Like – Layouts, Buttons, TextViews, ListViews, etc.
It's necessary to add a mask:
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight"> <item android:id="@android:id/mask"> <color android:color="@android:color/white" /> </item> </ripple>
Somehow, the @JMPergar 's answer didn't work for me.
However, I was able to think of this workaround: if a colour behind your transparent button is solid (not a gradient or a speckled picture) - you can use that color as a main button's unpressed one.
<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/profile_transparent_button_pressed" > <item> <shape> <corners android:radius="@dimen/profile_transparent_button_corner_radius" /> <solid android:color="@color/profile_background" /> </shape> </item> </ripple>
where @color/profile_transparent_button_pressed
is a colour to highlight a button, and @color/profile_background
- the colour of a layout behind this button. It works exactly as expected, but still definitely is a workaround so you go try @JMPergar 's answer first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With