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<Path>();
				paints = new ArrayList<Paint>();
								
		在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<paints.size();i++){
                      canvas.drawPath(paths.get(i), paints.get(i));//设置画笔,路径
                         }
					}

这样就完美解决了我想要实现的:多种颜色绘制,不论改变画笔宽度大小也可以

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值