笔记-Paint之setXfermode

笔记-Paint之setXfermode

setXfermode(Xfermode xfermode)--图形混合模式

  • 在继承Xfermode这个类有三个子类AvoidXfermode,PixelXorXfermode,PorterDuffXfermode
  • AvoidXfermode,PixelXorXfermode是完全不支持硬件加速的,而PorterDuffXfermode是部分不支持的

嗯,前两个好像已经不能使用了,所以我们就来看看第三个PorterDuffXfermode

  • 构造方法
public PorterDuffXfermode(PorterDuff.Mode mode) {
        porterDuffMode = mode.nativeInt;
    }
  • 嗯,构造只需要一个模式参数,我们来看一下他给我们都提供了哪些参数,他表示了源图像在覆盖到目标图像上的覆盖规则
mode说明
Mode.CLEAR就是覆盖之后变透明,啥都没有
Mode.SRC丢弃目标图像,将源图像保留
Mode.DST源像素被丢弃,保持目标图像不变。
Mode.SRC_OVER全部保留,重合部分用源图像覆盖
Mode.DST_OVER用目标图像覆盖源图像,无丢弃
Mode.SRC_IN将重合部分用源图像覆盖,其他都丢弃
Mode.DST_IN只保留与源图像重合的目标图像部分,目标图像其它部分丢弃
Mode.SRC_OUT只保留不重合部分的源图像,其余丢弃
Mode.DST_OUT丢弃与源图像重合的目标图像部分,目标图像其它部分保留
Mode.SRC_ATOP丢弃不重合部分的源图像,重合部分使源图像覆盖目标图像
Mode.DST_ATOP结果是将和源图像重合的目标图像覆盖在源图像上,目标图像其他部分丢弃
Mode.XOR重合部分清空,也就是透明,其他部分保留
Mode.DARKEN保留源像素和目标像素的最小分量。 变暗
Mode.LIGHTEN两个重合部分以图像重合处理,变亮
Mode.MULTIPLY将源像素和目标像素相乘,也就是只保留重合部分,并将它们重合部分的色彩矩阵相乘
Mode.SCREEN重合部分相加源像素和目标像素,然后减去乘以目标图像的源图像像素。
Mode.ADD将源像素添加到目标像素并使结果饱和。
Mode.OVERLAY取决于目标图像颜色,将源图像和目标图像重合部分相乘或屏蔽。
  • 上面的各个模式的解释只是我大概理解着写的,大家要看具体效果 可以去官方文档
  • 然后我们在绘图的时候就可以在每一次draw方法之前来设置他本次draw之后的覆盖模式,比如:
    paint.setColor(Color.RED);
    canvas.drawRect(0,0,100,100,paint);
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER));
    paint.setColor(Color.BLUE);
    canvas.drawRect(50,0,200,100,paint);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值