2

在此处输入图像描述

图像中的最后一行是使用 PathDashPathEffect 绘制的。我使用以下代码来绘制这条线。

mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setDither(true);
        mPaint.setColor(color);
        //      mPaint.setAlpha(120);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(6.0f);

        cornerpatheffect = new CornerPathEffect(10);
        pathdashpath = new PathDashPathEffect(makePathDash(), 10, 3,
                PathDashPathEffect.Style.MORPH);
        patheffect = new ComposePathEffect(cornerpatheffect, pathdashpath);
        mPaint.setPathEffect(pathdashpath);


private Path makePathDash() {
        Path p = new Path();
        p.moveTo(-6, 9/2);
        p.lineTo(6,9/2);
        p.lineTo(6,9/2-1);
        p.lineTo(-6, 9/2-1);
        p.close();
        p.moveTo(-6, -(9/2));
        p.lineTo(6,-(9/2));
        p.lineTo(6, -(9/2-1));
        p.lineTo(-6, -(9/2-1));
        return p;
    }

有什么办法可以增加两条线的笔画宽度。供您参考,setstrokewidth 方法不适用于 PathDashPathEffect。有人可以帮我吗?

4

1 回答 1

0

不知道你还需要答案吗

是的,您只需要像这样更改坐标:

private Path makePathDash() {
        Path p = new Path();
        p.moveTo(-6, 9/2);
        p.lineTo(6,9/2);
        p.lineTo(6,9/2-2);
        p.lineTo(-6, 9/2-2);
        p.close();
        p.moveTo(-6, -(9/2));
        p.lineTo(6,-(9/2));
        p.lineTo(6, -(9/2-2));
        p.lineTo(-6, -(9/2-2));
        return p;
    }

并将 (-2) 更改为 (-3) 以获得更厚的...

于 2013-11-19T13:37:18.120 回答