RippleDrawable mask color, what is it for?

2019-02-12 15:29发布

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!

1条回答
Viruses.
2楼-- · 2019-02-12 15:50

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.

查看更多
登录 后发表回答