我正在开发一个绘制地图的应用程序。
目前我的逻辑看起来像这样:
1) 我有一个活动,有一组图层(瓷砖,线条,正方形等......)。
2) 在显示包含画布的视图的活动中。
3) 然后在这个视图中我称之为“RenderAll”。会发生什么是我遍历所有层并在每个层上调用渲染过程。我将画布发送到我的渲染器,画布上画了一些东西。完成后,在我的视图上调用onDraw,图像就完成并在视图中绘制。
我想要的是我的每一个图层都是单独绘制的。意思是,我必须绘制不同的线程。因此,当我的地图被移动时,首先绘制瓷砖,然后绘制线条,依此类推。此外,我需要通过移动地图来取消任务。
有人可以指点一个好的教程如何做到这一点?我是多线程新手......
谢谢。
答案 0 :(得分:2)
首先,请阅读:http://download.oracle.com/javase/tutorial/essential/concurrency/
然后重新考虑你的设计。你真的想要移动街道名称,然后是街道吗?请记住:可能需要一些时间,因此几秒钟后用户将看到“错误”的图片。还有更多:你有多少层?如果层数可能增长(例如自定义标题,商店名称等),设计中的线程数量也会增长,这似乎不是一个好主意。
为什么不让一个绘制线程按顺序绘制所有图层?它可能比多线程解决方案工作得更快,并且更容易实现。