android 自定义view 画板改变画笔颜色

在自定义view画板的时候,想实现多种颜色的绘制

我的想法是:改变画笔颜色不就可以实现吗。

于是通过  paint.setColor(color); 来设置画笔颜色,一顿操作之后发现,
         在绘制之后,改变画笔颜色,再次绘制的时候,之前的颜色也改变了,这是咋回事呢?
         我是在ondraw()中   canvas.drawPath(path, paint)绘制的啊,于是上网找了好久,没找到解 
       决办法
 
再看看canvas.drawPath(path, paint) 这个方法,path, paint是成员变量参数。
      path --是绘制的路径,
      paint ---是画笔,

      当每次我改变画笔颜色时后 path是绘制的所有路径,
      每次ondraw() 都会调用  canvas.drawPath(path, paint) 来绘制,这时路径是所有
绘制的路径
     画笔颜色时改变了的颜色,所以才会出现,改变画笔颜色,之前绘制的颜色也会改变。

   整理思路:当每次手指按下的时候,重新new paint、path 并且把每次画笔和路径都保存起来放在list,这样每次ondraw()的时候循环list来绘制

 最终代码:初始化 list paths = new ArrayList();
				paints = new ArrayList();
								
		在onTouchEvent中当每次按下时: 
			path = new Path();//路径
			//设置画笔默认配置
				paint = new Paint();
				paint.setColor(paintColor);//颜色
				paint.setStrokeWidth(paintWidth);//线宽
				paint.setAntiAlias(true);//抗锯齿
				paint.setStyle(Paint.Style.STROKE); //只绘制图形轮廓(描边)
				paint.setStrokeJoin(Paint.Join.ROUND);
				paths.add(path);
				paints.add(paint);	
						
		在ondraw()中  
			if(paints!=null&&paints.size()>0){
				for(int i=0;i

 

你可能感兴趣的:(android)