Recently, I have some need to add ripple effect which
was introduced following Material Design into a button that already has
background. The background is a selector. And I’ve found two
solution.
1. Use foreground
android:foreground=”?android:attr/selectableItemBackground”
2. Use default attr background
- Ripples
contained within the view:android:background="?attr/selectableItemBackground"
- Ripples that
extend beyond the view’s bounds:android:background="?attr/selectableItemBackgroundBorderless"
So, use this selector in api 21 directory.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
and in the normal directory
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
This will let the android below api 21 have the desired
effect I wanted.
Also, I got this useful material:Using ?attr:
instead of ?android:attr
references the support library, so is available back to
API 7.
The Ripple Effect need API 21+, and the offical site tell us how to create custom effect
and color. Also, I found some great project in Android Arsenal, like RippleLayout and RippleEffect.Some effect is really beautiful.