Mylocationoverlay第一次找到location就消失了



我正在尝试设置mylocationoverlay。不幸的是,它的行为很奇怪。它工作得很好,除了它不会出现,直到我离开MapActivity并回到我的应用程序。最初,地图出现,当它得到一个很好的位置时,有一个蓝色的圆圈。然而,圆并没有分解成一个点,而是消失了。

我的代码是这样的:

onResume() {
    myLocation = new MyLocationOverlay(getActivity(), mp);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable(){
       public void run() {
          map.getOverlays().clear();
      map.getOverlays().add(myLocation);
      map.postInvalidate();
       }
    }
}

onPause() {
  myLocation.disableMyLocation();
  layout.removeView(map);
  map = null;

}

有人对这里可能发生的事情有什么想法吗?由于这几乎是所有在线示例的逐字逐句,我可能会补充说,我是在运行2.3.4的摩托罗拉矩阵上测试的。

Edit :让我带你看看你的代码:

onResume() {
// First time: draw a circle somewhere here. There is no GPS fix yet, so no dot. 
// Second time: The dot from the previous fix exists, so you get a circle and dot.
myLocation = new MyLocationOverlay(getActivity(), mp);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable(){
       public void run() {
       // First time: removes the circle and draws a dot.
       // Second time: removes the circle and dot, and draw a new dot. 
       map.getOverlays().clear();
       map.getOverlays().add(myLocation);
       map.postInvalidate();
       }
    }
}

map.getOverlays().clear();移除圆

使用remove()来删除你不想要的覆盖层,而不是清除它们。

当您需要强制重绘时,请记住调用map.invalidate();

相关内容

  • 没有找到相关文章

最新更新