I have a rounded rectangle with elevation that casts a shadow, just like in the example here: http://developer.android.com/preview/material/views-shadows.html#shadows
Here is my shape:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="6dp" />
</shape>
I want to get the nice "ripple" touch effect that everything else has, but when that's set as the view's background, no touch feedback is given. The shape stays white.
So, I made it into a layer-list
:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners android:radius="6dp" />
</shape>
</item>
<item android:drawable="?android:selectableItemBackground" />
</layer-list>
Now I get nice touch feedback when I tap it, but there's a problem.
The outline of the rounded rectangle shape was lost. It still draws the white rounded rectangle fine, but the shadow is cast as a non-rounded rectangle (square edges), and the ripple goes all the way out past the corners:
It doesn't look too horrible on here, but on the device it's pretty ugly and off-putting.
Is there a way to fix this? The Outline
section of the first link seems to be what I want, but I can't figure out how to implement it.
click here for complete source code
Create button.xml in drawable folder
Create button.xml in drawable-v21 folder
you can set button.xml as background of your view.
if you want custom color for ripple effect instead of default gray, then you can archive it by adding colorControlHighlight in your style.
ripple touch effect button in android studio
For more reference click here http://androiddhina.blogspot.in/2015/04/android-ripple-touch-effect-example.html
Try that one:
ripple.xml
background.xml
Or maybe this post will help you: Android L FAB Button shadow
I explained there, how to implement the new FAB button, I also used the outline for that.