在Android Canvas上,如何使用不相互作用的alpha绘制重叠形状?

时间:2011-08-25 20:36:46

标签: android canvas bitmap

在Android Canvas上,如果我绘制一个带有alpha 0xCC和颜色Color.RED的圆圈,然后绘制另一个圆圈,该圆圈与第一个圆圈重叠并且具有相同的参数,我将最终得到一个维恩图。

这是我发现的一个随机例子(只是忽略那里的[Text])。我想在这个图中绘制重叠的圆圈,但我不希望中心变暗,但我确实希望整个东西都有alpha,以便下面的地图可见。

有没有办法直接这样做,还是我需要绘制一个没有alpha的位图,然后设置整个位图的alpha并将其绘制到画布? (我还没有使用过位图,所以我不确定它们是如何使用的。)

1 个答案:

答案 0 :(得分:3)

简单的方法是您建议的解决方案,即。将所有没有alpha的圆绘制到位图,然后使用所需的alpha将该位图绘制到另一个位图。 困难的方法是使用混合模式,特别是Android中的PorterDuff.Mode。可以找到一个示例here