RippleDrawable 遮罩颜色,它是干啥用的?

Posted

技术标签:

【中文标题】RippleDrawable 遮罩颜色,它是干啥用的?【英文标题】:RippleDrawable mask color, what is it for?RippleDrawable 遮罩颜色,它是干什么用的? 【发布时间】:2015-08-13 21:20:24 【问题描述】:

在提到适用于 android L 的 RippleDrawable https://developer.android.com/reference/android/graphics/drawable/RippleDrawable.html 时,有一种方法可以屏蔽掉以包含视图中的波纹效果。掩蔽完成为

<ripple android:color="#ff0000ff">
    <item android:drawable="@drawable/white" />
</ripple>

我们也可以使用

<ripple android:color="#ff0000ff">
    <item android:drawable="@drawable/black" />
</ripple>

正如文档中提到的,遮罩层并没有在屏幕上绘制,而只是遮盖掉了涟漪效果。我很好奇,为什么要在那里设置颜色(白色或黑色或任何颜色)?我们中是否有任何重要的人将颜色设置为遮罩,或者确实可以使用任何值?

希望有人开导...谢谢!

【问题讨论】:

【参考方案1】:

为您的蒙版使用不透明颜色——无论是@android:color/white#ff000000 还是#ff123456 都无关紧要——这意味着您正在屏蔽一个与您的可绘制对象大小相同的完全不透明的矩形。这是波纹遮罩最有效的渲染路径。

【讨论】:

谢谢@alanv。我也试过#00000000,屏蔽仍然有效。在透明更改遮罩效果时似乎不透明。 这可能是快速路径中的错误(或者更有可能是 ColorDrawable.getOpacity() 中的错误)。您在哪个版本上看到了这种行为?您是否尝试过 M 预览版?假设您没有单独的 @android:id/mask 层,使用透明内容层应该会产生不可见的涟漪,因为它被空位图所掩盖。 所以你的意思是颜色并不重要,重要的是alpha?

以上是关于RippleDrawable 遮罩颜色,它是干啥用的?的主要内容,如果未能解决你的问题,请参考以下文章

CSS里的a:active 是干啥用的,请举例说明

Xcode Storyboard Document 部分是干啥用的?

python按着书上来的,不知道为啥错了,那个感叹号是干啥用的?

C#中的KeyValuePair类是干啥用的?

Java中的Statement类是干啥用的?

mysql是干啥用的?