Android QN:更改油漆颜色而不影响先前绘制的线条

Android QN:更改油漆颜色而不影响先前绘制的线条,android,colors,paint,Android,Colors,Paint,我想创建一个绘图应用程序,允许用户绘制不同的颜色。除了颜色的变化,我什么都能想到 我有一个最初的红色油漆画几条线,当我改变颜色为绿色,所有以前画的线都改变了。我希望以前绘制的线保留红色,新的线以绿色绘制 canvas.drawPath(mPath, mPaint); 我使用canvas.drawPath方法与mPaint paint一起进行绘制。但是当我改变mPaint颜色时,所有的东西都会改变颜色 我试着浏览网页,但什么也找不到,我花了很长时间才弄明白。请帮忙 为什么不切换到新的绘制

我想创建一个绘图应用程序,允许用户绘制不同的颜色。除了颜色的变化,我什么都能想到

我有一个最初的红色油漆画几条线,当我改变颜色为绿色,所有以前画的线都改变了。我希望以前绘制的线保留红色,新的线以绿色绘制

    canvas.drawPath(mPath, mPaint);
我使用canvas.drawPath方法与mPaint paint一起进行绘制。但是当我改变mPaint颜色时,所有的东西都会改变颜色


我试着浏览网页,但什么也找不到,我花了很长时间才弄明白。请帮忙

为什么不切换到新的绘制而不是更改现有绘制的颜色?

您可以在主类中使用此代码,这将对您非常有帮助

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));

mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(0xFFFF0000);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(3);
 }
 private Paint mPaint;
 private MaskFilter mEmboss;
 private MaskFilter mBlur;
 public void colorChanged(int color) {
 mPaint.setColor(color);
 }

如何切换到新的paint?从性能角度来看,创建paint对象代价高昂。切换到另一个预先制作的绘画对象似乎没有效果。我该如何应用它