Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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
Java 画布绘制循环代码_Java_Android - Fatal编程技术网

Java 画布绘制循环代码

Java 画布绘制循环代码,java,android,Java,Android,我每次触摸屏幕都在画布上画圆圈。我将它们添加到onTouch方法中的路径数组列表中。在onDraw方法中,我循环遍历数组,绘制它们 当我试图改变其中一个圆圈的颜色时,它改变了它们。我不想这样,只想把它应用到一个特定的圆上。我该怎么做 代码: 两种选择: 将单独的绘制对象与每个圆一起存储 在绘图中查询要更改的内容的当前值,然后在绘制圆后恢复这些值 两种选择: 将单独的绘制对象与每个圆一起存储 在绘图中查询要更改的内容的当前值,然后在绘制圆后恢复这些值 //触控方法案例MotionEvent.ACT

我每次触摸屏幕都在画布上画圆圈。我将它们添加到onTouch方法中的路径数组列表中。在onDraw方法中,我循环遍历数组,绘制它们

当我试图改变其中一个圆圈的颜色时,它改变了它们。我不想这样,只想把它应用到一个特定的圆上。我该怎么做

代码:

两种选择:

  • 将单独的绘制对象与每个圆一起存储
  • 在绘图中查询要更改的内容的当前值,然后在绘制圆后恢复这些值
  • 两种选择:

  • 将单独的绘制对象与每个圆一起存储
  • 在绘图中查询要更改的内容的当前值,然后在绘制圆后恢复这些值

  • //触控方法案例MotionEvent.ACTION\u DOWN:模式=拖动;x=(int)event.getX();y=(int)event.getY();路径=新路径();addCircle(event.getX(),event.getY(),8,path.Direction.CCW);mpaint.setARGB(255,mcolor[0],100,mcolor[2]);圈。添加(路径);使无效()//(路径c:circle){canvas.drawPath(c,mpaint);}//on-touch方法case-MotionEvent.ACTION\u-DOWN:mode=Drag;x=(int)event.getX();y=(int)event.getY();路径=新路径();addCircle(event.getX(),event.getY(),8,path.Direction.CCW);mpaint.setARGB(255,mcolor[0],100,mcolor[2]);圈。添加(路径);使无效()//关于(路径c:circle){canvas.drawPath(c,mpaint);}
    //on touch method
    case MotionEvent.ACTION_DOWN:
        mode = Drag;
        x =(int) event.getX();
        y =(int) event.getY();
        path = new Path();
        path.addCircle(event.getX(), event.getY(), 8, Path.Direction.CCW);
        mpaint.setARGB(255, mcolor[0],100, mcolor[2]);
        circle.add(path);
        invalidate();
    
    //on draw method
    for (Path c : circle) {
        canvas.drawPath(c, mpaint);
    }