在android画布中有选择性地屏蔽

时间:2012-05-04 20:38:05

标签: android android-canvas layer mask

我有一个画布,如果第一次画出背景图像。 然后在背景上绘制另一个图像。 我有一个在屏幕上移动的渐变对象。 Gradient中使用的Paint将其Xfermode设置为, paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));

效果有效,但也适用于背景图像。如何避免背景图像受到顶部面具的影响?

1 个答案:

答案 0 :(得分:0)

油漆将应用于整个画布。由于您的背景使用与Gradient对象相同的Canvas绘制,当然使用自定义Xfermode会影响所述背景!

一种可能的解决方案是在由单独的Bitmap对象备份的2个不同Canvas对象中分离背景和前景,然后将这些图层合并到Photoshop中。我刚刚在StackOverflow上发布了一个示例代码,这里是它的链接:

https://stackoverflow.com/a/10370828/1350375