合并android.graphics.Path实例?

时间:2011-07-11 14:56:35

标签: android

是否可以合并多条路径?

在下面的示例中,我为生成的“p4”添加了3个路径。 使用Paint.Style.STROKE绘图。 所以它似乎是Path.FillType的一个问题?

    public void drawTest3(Canvas canvas){

        Path p1,p2,p3,p4;
        p1 = new Path();
        p2 = new Path();
        p3 = new Path();
        p4 = new Path();

        // create 3 coordinates that form a triangle
        float[] start = new float[]{(float)getWidth()/2,(float)getHeight()/2};
        float[] point1 = new float[]{0.0f,(float)getHeight()};
        float[] point2 = new float[]{(float)getWidth(),(float)getHeight()};

        p1.moveTo(start[0], start[1]);
        p1.lineTo(point1[0], point1[1]);

        p2.moveTo(point1[0], point1[1]);
        p2.lineTo(point2[0], point2[1]);

        p3.moveTo(point2[0], point2[1]);
        p3.lineTo(start[0], start[1]);

        // add all 3 paths to p4 
        p4.addPath(p1);
        p4.addPath(p2);
        p4.addPath(p3);

        // draw
        canvas.drawARGB(0xff, 0xdd, 0xdd, 0xdd);
        Paint paint = new Paint();
        paint.setColor(0x33333333);
        canvas.drawPath(p4, paint);

    }

问候,罗兰

3 个答案:

答案 0 :(得分:1)

这就是我从两种不同方法加入两条路径的方法。每一个都返回一个Path。

Path p = new Path();
p = beggining();
p.addPath(continue(p)); 
p.close();

答案 1 :(得分:0)

如果路径已关闭,您只能使用fill,因此您需要在绘制之前调用p4.close()。

答案 2 :(得分:0)

我想你可能要关闭每条路径?路径类有时会产生意想不到的结果。