3

Viewを拡張するMyViewという名前のクラスが1つあります。オプションメニューには、4種類の色があります。

緑を選択してキャンバスにパスを描画すると、緑のパスが描画され、赤を選択すると、赤のパスが描画され、前の緑はそのままになります...

さまざまな色の複数のパスを描画することに成功しましたが、一度に1つの色だけがキャンバスに保持されます..キャンバスに複数の色のパスを描画するにはどうすればよいですか?

4

1 に答える 1

1

私がこれを行った方法は、パスをサブクラス化してパスとともに色を保存することです:

    private class DrawingPath extends Path
    {
            public DrawingPath(float w, int c)
            {
                    Width = w;
                    Color = c;
            }

            public float Width;
            public int Color;
    }

次に、各パスを描画するときに、事前に色を設定します。

ご覧のとおり、このコードで幅を設定することもできるため、各パスのストローク幅を変更できます。

これを描くために私は使用しました:

mCanvas.drawColor(Color.WHITE);

for (DrawingPath p : mPaths)
{
    mPaint.setColor(p.Color); 
    mPaint.setStrokeWidth(p.Width);
    mCanvas.drawPath(p, mPaint);
}

invalidate();
于 2013-02-20T13:48:31.657 に答える