Android の Maps API の概念を理解するのに苦労しています。地図上に何か新しいものを描画したいときはいつでも、新しいオーバーレイを作成するのは正しいですか? これは一見非常に効率が悪いように見えます。レイヤー構造全体が焼き付いたので、パフォーマンスについてまったく心配する必要はありませんか、それとも updateOverlay のようなものが欠けていますか? それとも、Overlay クラスを拡張して後で MapView.invalidate() を呼び出すときに、独自の updateOverlay() メソッドを実装しますか?
1 に答える
0
オーバーレイを1回だけ作成し、それをMapViewに追加します。次に、MapViewでpostInvalidate()を呼び出す必要があります。これにより、新しいオーバーレイが画面に表示されます。この呼び出しがないと、オーバーレイは作成されますが、表示されません。
アクティビティライフサイクルのonResume()メソッドは、アプリケーションの起動時または起動時に常に呼び出されるため、onResume()で位置追跡を有効にし、onPause()で無効にする必要があります。MyLocationOverlayクラスには便利なメソッドがあります:runOnFirstFix()このメソッドを使用すると、場所が決まったらすぐに実行されるコードを設定できます。
@Override
public void onResume()
{
super.onResume();
whereAmI.enableMyLocation();
whereAmI.runOnFirstFix( new Runnable() {
public void run() {
mapController.setCenter(whereAmI.getMyLocation());
}
});
}
その後、MyLocationOverlayが位置情報の更新を取得し、その位置に青い点が点滅するため、自分で何もする必要はありません。
@Override
public void onPause()
{
super.onPause();
whereAmI.disableMyLocation();
}
于 2013-01-07T19:48:48.347 に答える