Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在画布上绘制多条路径_Android_Canvas_Paint - Fatal编程技术网

Android 在画布上绘制多条路径

Android 在画布上绘制多条路径,android,canvas,paint,Android,Canvas,Paint,我有一个名为MyView的类,它扩展了视图。在我的选项菜单中,我有四种颜色 我想要的是,当我选择绿色并在画布上绘制路径时,它应该绘制绿色路径,当我选择红色时,它应该绘制红色路径,之前的绿色应该保持原样 我成功地画出了各种颜色的多条路径,但一次画布上只有一种颜色。。那么,如何在画布上绘制多个颜色的路径???我这样做的方式是通过子类化路径来存储颜色和路径: private class DrawingPath extends Path { public Draw

我有一个名为MyView的类,它扩展了视图。在我的选项菜单中,我有四种颜色

我想要的是,当我选择绿色并在画布上绘制路径时,它应该绘制绿色路径,当我选择红色时,它应该绘制红色路径,之前的绿色应该保持原样


我成功地画出了各种颜色的多条路径,但一次画布上只有一种颜色。。那么,如何在画布上绘制多个颜色的路径???

我这样做的方式是通过子类化路径来存储颜色和路径:

    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();

一次定义并包含当前代码。您必须在画布上显示正在绘制的代码。基本上,你必须保存路径的颜色,这样你就可以知道每个路径是什么颜色了。我只有一个问题,当我在那个地方改变颜色时,我必须写哪个代码??另一种方法如何使用这个DrawingPath类?让我知道..在将片段添加到路径后,
onTouchEvent
中有此代码。你可以把它放在任何你想重新绘制视图的地方。请给我一个合适的例子,我仍然不理解整个过程。