如果在使用PorterDuff模式时遮盖效果不正确,可能是因为你在绘制时没有使用透明色。以下是一个代码示例,它使用PorterDuff模式创建一个遮盖效果:
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
canvas.drawBitmap(bitmap, 0, 0, paint);
如果你不使用透明色,那么你需要将上面的drawBitmap()
语句中的第一个参数更改为你的透明颜色。例如,如果你的透明颜色为白色,则应将第一个参数更改为Color.WHITE
。