画线程

时间:2011-08-22 05:29:11

标签: java android multithreading canvas drawing

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

目前我的逻辑看起来像这样:

1) 我有一个活动,有一组图层(瓷砖,线条,正方形等......)。

2) 在显示包含画布的视图的活动中。

3) 然后在这个视图中我称之为“RenderAll”。会发生什么是我遍历所有层并在每个层上调用渲染过程。我将画布发送到我的渲染器,画布上画了一些东西。完成后,在我的视图上调用onDraw,图像就完成并在视图中绘制。

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

有人可以指点一个好的教程如何做到这一点?我是多线程新手......

谢谢。

1 个答案:

答案 0 :(得分:2)

首先,请阅读:http://download.oracle.com/javase/tutorial/essential/concurrency/

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

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