Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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_Android Canvas_Surfaceview - Fatal编程技术网

Java 如何重写画布(重用)

Java 如何重写画布(重用),java,android,android-canvas,surfaceview,Java,Android,Android Canvas,Surfaceview,我有一个方法可以在画布上绘制一组自动生成的线条。这是没有问题的。 现在的问题是,如何使用onTouch事件在画布上添加线。我尝试用一个线程和一个SurfaceView来解决这个问题,但是线程无限地绘制自动生成的集合。 (我要添加的行必须是可删除的) 如有任何建议,将不胜感激,谢谢 将您的线条坐标放在线条对象的arraylist中,并在onDraw方法中使用循环迭代每一条线条以在画布上绘制。 在arraylist onTouch中添加行。 在触摸屏上添加行后,调用invalidate()更新画布。

我有一个方法可以在画布上绘制一组自动生成的线条。这是没有问题的。 现在的问题是,如何使用onTouch事件在画布上添加线。我尝试用一个线程和一个SurfaceView来解决这个问题,但是线程无限地绘制自动生成的集合。 (我要添加的行必须是可删除的)


如有任何建议,将不胜感激,谢谢

将您的线条坐标放在线条对象的arraylist中,并在onDraw方法中使用循环迭代每一条线条以在画布上绘制。 在arraylist onTouch中添加行。 在触摸屏上添加行后,调用invalidate()更新画布。

使用

invalidate()
这将呼叫

onDraw(Canvas canvas)

我们不能合理地回答这个问题,除非看到有问题的代码片段。请编辑您的问题以提供更详细的信息。谢谢,invalidate()帮助了我很多!但是,如果我想删除新对象,我每次都要重画大约100行。是否可以保存第一个自动生成的“绘图”,然后在此画布上工作,因为它是背景图像?