我有一个带有 ItemizedOverlays 的谷歌 MapView。然后我添加一个 imageView(不是 Overlay)并附加到 MapView。如何让 ItemizedOverlays 位于 imageView 之上?我希望 MapView 标记位于顶部。
我知道添加叠加层的顺序决定了叠加层的 z 顺序,但是如何控制新附加视图的 z 顺序以及叠加层?
我有一个带有 ItemizedOverlays 的谷歌 MapView。然后我添加一个 imageView(不是 Overlay)并附加到 MapView。如何让 ItemizedOverlays 位于 imageView 之上?我希望 MapView 标记位于顶部。
我知道添加叠加层的顺序决定了叠加层的 z 顺序,但是如何控制新附加视图的 z 顺序以及叠加层?
MapView 扩展了 ViewGroup,所以我假设 Overlays 是作为 ViewGroup 的子级绘制的。这意味着您应该能够使用 ViewGroup.addView(View child, int index) 插入 ImageView 以使其显示在 Overlays 下方。
不过,更好的方法是自己扩展 MapView,并尝试覆盖 (a) ViewGroup.getChildAt(int index) 或 (b) ViewGroup.getChildDrawingOrder(int childCount, int i)。取决于 MapView 如何实现其绘制顺序(例如,LinearLayout 的 Z 顺序是它的子视图顺序)。
对于(a),请参阅此答案:按字母顺序排序按钮
对于 (b),您还需要通过调用 setChildrenDrawingOrderEnabled(boolean enabled) 来启用绘图顺序。