0

这是我的问题,我有一个列表 0...n-1。在这个列表中,我有 n 个叠加层。我需要在地图上模拟一辆移动的汽车,它由覆盖层表示。我尝试做一个 AsyncTask,它在主线程上生成覆盖,但是当我拖动 mapview 时,它会因 currentmodificationexception 而崩溃。这是一个迭代器的问题,因为我无法管理来自其他线程的任何覆盖。我能怎么做?

4

1 回答 1

0

除了使用 n 个叠加层,您可以只使用一个叠加层并覆盖 draw 方法以将汽车绘制在正确的位置。

您仍然可以使用异步任务来定义汽车位置 (x,y),并在叠加绘制中使用此 X,Y 坐标来定位汽车。

doInBackground(){
  //..
  carOverlay.set(x,y);
  //..
}

public class CarOverlay extends Overlay {
//..
set(intx, int y){
  this.x = x;
  this.y = y;
}

@Override
public void draw(Canvas canvas, MapView mapview, boolean shadow) {
  //..
  darwCar(x,y); //you need to create your darwCar method ...
}

祝你好运。

于 2012-10-06T15:28:06.460 回答