1

私はクラスを持っています:

public class WaypointOverlay extends ItemizedOverlay<OverlayItem>

draw()のメソッドをオーバーライドしますItemizedOverlay
私のアクティビティには、多くのオーバーレイ アイテムとリストを含むマップがあります。traceviewer の出力と logcat からMapView.onDraw()、マップがそのままの状態でも何度も呼び出されていることに気付きました。これにより、リストとマップが非常に応答しなくなりました (これらの呼び出し WaypointOverlayからクラスを単純に返すと、すべてがうまく機能します)onDraw

onDraw呼び出しの頻度を減らすにはどうすればよいMapViewですか? で、 が前回の呼び出しと同じ緯度/経度スパンを持っているonDrawかどうかを確認し、2 つが異なる場合にのみ描画しようとしました。これにより、マップがパンまたはズームしている場合にのみ が表示されました。MapViewonDrawOverlayItems

パフォーマンスを向上させるためのアイデアはありますか?

4

1 に答える 1

1

私はこの問題を解決したかもしれないと思います(少なくとも私の場合は)。私のアプリでは、ユーザーはマップから離れてからマップに戻ることができます。すべて同じアクティビティで実行できます。ユーザーがマップに戻るたびに、作成したすべてのオーバーレイを再度追加しました。これは、マップ上にオーバーレイが多すぎることを意味していました。オーバーラップしているため、それらを見ることができませんでした。MapView.getOverlays().clear() を呼び出すと、マップとリストのパフォーマンスが大幅に向上しました。

于 2011-05-22T13:18:21.127 に答える