An Xfermode
(think "transfer" mode) works as a transfer step in drawing pipeline. When an Xfermode
is applied to a Paint
, the pixels drawn with the paint are combined with underlying pixels (already drawn) as per the mode:
paint.setColor(Color.BLUE);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
Now we have a blue tint paint. Any shape drawn will tint the already existing, non-transparent pixels blue in the area of the shape.