0

ItemizedOverlayを使用した例を実行していました。drawメソッドは次のようにオーバーライドされます。

public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    shadow = false;
    super.draw(canvas, mapView, shadow);
}

この例では、populate()が呼び出され、次にsize()とcreateItem(int i)が呼び出されます。

しかし、私の質問は、上記の描画メソッドを誰が呼び出すのか、そしてそれはどのように呼ばれるのかということです。特に、呼び出し元は、パラメーターとして渡すMapViewオブジェクトをどのようにして知るのでしょうか。

4

1 に答える 1

0

上記の描画メソッドを誰が呼び出しますか、そしてそれはどのように呼び出されますか?

invalidate()メソッドは、Viewクラスに実装されているビューを強制的に描画します。invalidateは、ビューを描画する必要があるときはいつでも、ユーザーまたはシステムによって呼び出されます。

draw methodいくつかのパラメーターでオーバーライドするオーバーレイを拡張するプライベート内部クラスを作成する場合。

  • 最初の引数は、マーカーを描画するために使用するCanvasのインスタンスへのハンドルです。

  • 2つ目は、このオーバーレイが表示されるMapViewのインスタンスです。

  • 3番目の引数は、実際の画像を描画するのか、影を描画するのかを示すブール値です。

実際、このメソッドは2回呼び出されます。1回は影を描き、もう1回は描きたい実際のものを描きます。

以下はあなたを助けるいくつかのリンクです

Androidがビューを描画する方法

MapViewに複数のロケーションマーカーを描画する

クラスオーバーレイ

于 2013-01-04T05:14:11.273 に答える