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 に答える