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

Java 画线

Java 画线,java,android,multithreading,canvas,drawing,Java,Android,Multithreading,Canvas,Drawing,我正在开发一个绘制地图的应用程序 目前我的逻辑如下: (一) 我有一个层集合(瓷砖、线条、正方形等)的活动 (二) 在活动中,显示包含画布的视图 (三) 在这个视图中,我称之为“RenderAll”。所发生的事情是,我遍历所有层,并对每个层调用一个渲染过程。我将画布发送到渲染器,并在画布中绘制内容。一旦完成,onDraw将在我的视图中被调用,并且图像已完成并在视图中绘制 我想要的是,我的每一层都单独绘制。意思是,我必须画不同的线。因此,当我的地图被移动时,首先绘制瓷砖,然后绘制线条,依此类推。我

我正在开发一个绘制地图的应用程序

目前我的逻辑如下:

(一) 我有一个层集合(瓷砖、线条、正方形等)的活动

(二) 在活动中,显示包含画布的视图

(三) 在这个视图中,我称之为“RenderAll”。所发生的事情是,我遍历所有层,并对每个层调用一个渲染过程。我将画布发送到渲染器,并在画布中绘制内容。一旦完成,onDraw将在我的视图中被调用,并且图像已完成并在视图中绘制

我想要的是,我的每一层都单独绘制。意思是,我必须画不同的线。因此,当我的地图被移动时,首先绘制瓷砖,然后绘制线条,依此类推。我还需要通过移动地图来取消任务

有人能告诉我一个好的教程怎么做吗?我是新的多线程

谢谢。

首先,请阅读以下内容:

然后重新考虑你的设计。你真的想移动街道名称然后移动街道吗?请记住:这可能需要时间,所以用户会在几秒钟内看到“错误”的图片。还有更多:你有多少层?如果层数可能增加(例如自定义标题、商店名称等),那么设计中的线程数也会增加,这似乎不是一个好主意


为什么不让一个绘制线程按顺序绘制所有图层?它可能比多线程解决方案工作得更快,而且更容易实现

嘿!实际上,你所描述的问题不会发生。当前,当我平移贴图时,所有层都在画布中渲染和绘制。我得到一个新的图像,然后显示。我想先显示瓷砖,然后再显示其他层(按一定顺序)。如果在渲染仍在工作时平移贴图,我希望取消该任务,然后重新渲染。关于你的“顺序”提案,你有什么例子吗?