1

ItemizedOverlays を使用した Google MapView があります。次に、(オーバーレイではなく) imageView を追加し、MapView にアタッチします。ItemizedOverlays を imageView の上に配置するにはどうすればよいですか? MapView マーカーを一番上にしたいと思います。

オーバーレイが追加される順序によってオーバーレイの z オーダーが決定されることは理解していますが、新しくアタッチされたビューの z オーダーをオーバーレイと共に制御するにはどうすればよいですか?

4

1 に答える 1

1

MapView は ViewGroup を拡張するため、オーバーレイは ViewGroup の子として描画されると想定しています。これは、ViewGroup.addView(View child, int index) を使用して ImageView を挿入し、オーバーレイの下に表示できることを意味します。

ただし、MapView を自分で拡張し、(a) ViewGroup.getChildAt(int index) または (b) ViewGroup.getChildDrawingOrder(int childCount, int i) のいずれかをオーバーライドすることをお勧めします。MapView がその描画順序をどのように実装しているかによって異なります (たとえば、LinearLayout の Z オーダーは子ビューの順序です)。

(a) については、この回答を参照してください:ボタンをアルファベット順に並べ替える

(b) の場合は、setChildrenDrawingOrderEnabled(boolean enabled) を呼び出して描画順序を有効にする必要もあります。

于 2012-10-08T06:06:07.577 に答える