3

インタラクティブマップを作成していますが、本当に混乱しています。

オーバーレイを管理しているItemizedOverlayクラスの拡張があります。

シェルの場合、mapViewのオーバーレイを更新するためにpopulate()関数を使用し、マップを更新するためにinvalidate()またはpostInvalidate()を使用する必要がある場合。

私は時々これがうまくいくこともあれば、他のこともあることを発見しました。

誰かが親切に各機能が何をするのかを正確に説明してくれるなら-まともな説明を見つけることができなかったので、私は完全に感謝します。

4

2 に答える 2

3

オーバーレイにデータを入力する場合は、populate()を使用する必要があります。再描画するだけの場合は、UIスレッドを使用している場合はinvalidate()を使用し、別のスレッドを使用している場合はpostInvalidate()を使用する必要があります。無効化メソッドは、ボタンやテキストビューなど、あらゆるビューに適用できます。基本的に、表示されているデータやボタンの状態や色など、ビューに関連して何かが変更されたことをAndroidに通知します。Androidは、ビューのonDraw()メソッドを呼び出して、できるだけ早くビューの再描画を試みます。

于 2012-09-10T15:44:38.827 に答える
0

私は常にinvalidate()を使用していて、問題が発生したことはありません...(つまり、常に更新されます)

于 2012-09-10T15:32:38.620 に答える