0

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 を実行している motorolla atrix でこれをテストしていることを付け加えておきます。

4

1 に答える 1

0

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();再描画を強制する必要があるときはいつでも呼び出すことを忘れないでください

于 2011-10-21T03:43:25.767 に答える