0

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

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

4

1 回答 1

0

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

一种可能的解决方案是将您的背景和前景分离到由单独的位图对象支持的 2 个不同的 Canvas 对象中,然后像在 Photoshop 中那样将图层合并在一起。不久前,我在 StackOverflow 上发布了一个示例代码,这是它的链接:

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

于 2012-05-04T21:12:05.680 回答