美文网首页android高级UI
谷歌官方xfERMODE

谷歌官方xfERMODE

作者: saygoodbye_e92e | 来源:发表于2019-06-03 23:06 被阅读0次

    参考:https://blog.csdn.net/jinmie0193/article/details/80815868
    一、PorterDuffXfermode模式介绍

    PorterDuffXfermode是设置两个图层的交集区域的显示方式,

    分为目标图像(先画的图片)和源图像(后画的图片),图解如下:

    简单说目标图像是底片,源图像是封面

    先看一下官方的样图

    两个图形一圆一方通过设置不同的模式会产生不同的组合效果,

    在API中Android为我们提供了18种(比上图多了两种ADD和OVERLAY)模式:

    ADD:                饱和相加,对图像饱和度进行相加,不常用

    CLEAR:             清除图像

    DARKEN:          变暗,较深的颜色覆盖较浅的颜色,若两者深浅程度相同则混合

    DST:                只显示目标图像

    DST_ATOP:      在源图像和目标图像,相交的地方绘制【目标图像】,  不相交的地方绘制【源图像】,相交处的效果受到源图像和目标图像alpha的影响

    DST_IN:           只在源图像和目标图像相交的地方绘制【目标图像】,绘制效果受到源图像对应地方透明度影响

    DST_OUT:        只在源图像和目标图像不相交的地方绘制【目标图像】,在相交的地方根据源图像的alpha进行过滤,源图像完全不透明则完全过滤,完全透明则不过滤

    DST_OVER:        将目标图像放在源图像上方

    LIGHTEN:           变亮,与DARKEN相反,DARKEN和LIGHTEN生成的图像结果与Android对颜色值深浅的定义有关

    MULTIPLY:        正片叠底,源图像素颜色值乘以目标图像素颜色值除以255得到混合后图像像素颜色值

    OVERLAY:        叠加

    SCREEN:         滤色,色调均和,保留两个图层中较白的部分,较暗的部分被遮盖

    SRC:                只显示源图像

    SRC_ATOP:        在源图像和目标图像相交的地方绘制【源图像】,在不相交的地方绘制【目标图像】,相交处的效果受到源图像和目标图像alpha的影响

    SRC_IN:        只在源图像和目标图像相交的地方绘制【源图像】

    SRC_OUT:    只在源图像和目标图像不相交的地方绘制【源图像】,相交的地方根据目标图像的对应地方的alpha进行过滤,目标图像完全不透明则完全过滤,完全透明则不过滤

    SRC_OVER:    将源图像放在目标图像上方

    XOR:            在源图像和目标图像相交的地方之外绘制它们,在相交的地方受到对应alpha和色值影响,如果完全不透明则相交处完全不绘制

    二、PorterDuffXfermode 举例

    举一个刮刮卡的例子

    思路分析:

            //刮刮卡效果,分为上面遮罩和下面图片的方向

            //将手绘路径绘制到覆盖层,设置手绘路径和覆盖层为DST_IN模式

            //DST_IN:只在源图像和目标图像相交的地方绘制【目标图像】

            //这样遮罩和手触摸的位置便只显示相交的目标图像-遮罩,

            //再设置画笔为透明,次时由于透明度的影响,遮罩变为透明,于是被擦除了

    ---------------------

    作者:Amarao

    来源:CSDN

    原文:https://blog.csdn.net/jinmie0193/article/details/80815868

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

        本文标题:谷歌官方xfERMODE

        本文链接:https://www.haomeiwen.com/subject/vrqkxctx.html