0

我正在开发一个 Android 地图应用程序,并且我已经设法将 Google 的 ItemizedOverlay 教程应用到我的代码中。我在地图上很好地绘制了我的小圆圈。

但是,我想一直用它的标题来标记我的小符号。我将在我的地图上放置一些不同的符号,并且能够显示它们的标签将是一个很大的帮助。我得到了 onTap 方法,但是当您点击屏幕时,它会接管整个显示 - 这不是很有帮助。

我还没有设法在互联网上找到有关此的内容,所以我并不乐观,但如果有人有任何建议,将不胜感激。

4

2 回答 2

1

不确定onTap与此有什么关系,或者您所说的“它接管了整个显示器”是什么意思,但我认为要显示标签,您必须自己绘制它们。你可以通过几种方式做到这一点。一种是直接覆盖该ItemizedOverlay.draw方法,并遍历您的每一个GeoPoints并将标题直接绘制到Canvas该位置的某个小偏移处。另一种可能的方法是返回自定义标记;除了返回符号之外,您还可以Picture通过绘制圆圈然后在其旁边绘制一些文本来创建 a,然后您可以将其包装在 a 中PictureDrawable并将其用作叠加项目的标记。

于 2010-09-21T16:05:32.600 回答
0

我的 onTap 方法如下所示:

受保护的布尔 onTap(整数索引)
{
    OverlayItem item = mOverlays.get (index);
    AlertDialog.Builder 对话框 = new AlertDialog.Builder (mContext);

    dialog.setTitle (item.getTitle());
    dialog.setMessage (item.getSnippet());
    对话框.show();
    返回真;
}

调用应用程序在实例化 Itemized Overlay 时传入其上下文 (this)。我仍然不确定这意味着什么,但我将传入的上下文保存在 mContext 中,并在 onTap() 中使用它。当然,我不能真正为此归功于它,因为其他人在互联网上发帖。它确实在屏幕上显示了叠加层的信息,但(对我来说不幸的是)不是以我满意的方式。

我正在努力覆盖 draw 方法,但这已经被打断了很多,并且仍处于早期阶段。如果有兴趣,我会在这里发布。

R。

于 2010-09-23T12:36:15.410 回答