1

我得到了我的位图,将其用作着色器平铺模式。

除了要绘制的形状轮廓外,PNG 主要是 alpha。

除了它绘制轮廓,而是被黑色包围,而不是透明(alpha)。

    pnt.reset();

    if(backgroundColor == 1)
    {   
            pnt.setColor(myColor);
            pnt.setStyle(Paint.Style.FILL);

    }

     m_canvas.drawPath(path, pnt);

//fillBMP = getBitmapFromAsset(m_context, "brush.png"); 
    fillBMP = BitmapFactory.decodeFile(mySDPath + "brush.png");
fillBMPshader = new BitmapShader(fillBMP, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);  

pnt.setShader(fillBMPshader);  

m_canvas.drawPath(path, pnt);

下面是左边画笔的例子。但结果它绘制在右边。

在此处输入图像描述

4

1 回答 1

2

你应该设置XferMode你的Paint对象。更具体地说,您必须使用PorterDuffXferMode MULTIPLY

这是一个类似的问题:Android 颜色叠加 - PorterDuff 模式

于 2012-11-20T13:00:37.733 回答