In referring to the RippleDrawable for Android L, https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html, there's a way to mask away to contain the ripple effect within the view. The masking is done as
<ripple android:color="#ff0000ff">
<item android:drawable="@drawable/white" />
</ripple>
We could also mask it using
<ripple android:color="#ff0000ff">
<item android:drawable="@drawable/black" />
</ripple>
As mentioned in the document, the mask layer is not drawn on the screen, but just masking away the ripple effect. I'm curious, why should one set a color (White or Black or anything) there? Is there any significant of us setting a color as the Mask, or it is indeed any value will do?
Hopes someone enlighten... thanks!
Using an opaque color for your mask -- whether that's
@android:color/white
,#ff000000
, or#ff123456
doesn't matter -- means you are masking against a fully opaque rectangle that is the same size as your drawable. It's the most efficient rendering path for ripple masks.