我正在开发一个Android地图应用程序,我已经设法在我的代码中使用Google的ItemizedOverlay教程。我在地图上很好地绘制了我的小圆圈。
但是,我想一直用它的标题标记我的小符号。我将在我的地图上删除一些不同的符号,能够显示他们的标签将是一个很大的帮助。我让onTap方法正常工作,但当你点击屏幕时,它会接管整个显示 - 这不是很有帮助。
我还没有在互联网上找到关于这个的事情,所以我不乐观,但如果有人有任何建议,那将非常感激。
答案 0 :(得分:1)
不确定onTap
与此有什么关系或者你的意思是“它占据了整个显示器”,但我认为要显示标签,你必须自己绘制它们。你可以通过几种方式做到这一点。一种方法是直接覆盖ItemizedOverlay.draw
方法,并遍历GeoPoints
中的每一个,并将标题直接绘制到Canvas
上,到达该位置的一小偏移处。另一种可能的方法是返回自定义标记;您可以通过绘制圆圈然后在其旁边绘制一些文本来创建Picture
,而不是仅仅返回符号,然后您可以将其包装在PictureDrawable
中并将其用作您的叠加项目的标记。
答案 1 :(得分:0)
我的onTap方法如下所示:
protected boolean onTap (int index) { OverlayItem item = mOverlays.get (index); AlertDialog.Builder dialog = new AlertDialog.Builder (mContext); dialog.setTitle (item.getTitle()); dialog.setMessage (item.getSnippet()); dialog.show(); return true; }
调用应用程序在实例化Itemized Overlay时传递其上下文(this)。我仍然不确定这意味着什么,但我在mContext中保存了传入的上下文,并在onTap()中使用它。当然,我不能真正为它赢得赞誉,因为其他人已经登陆互联网。它确实在屏幕上显示Overlay的信息,但(不幸的是对我而言)并不是我满意的方式。
我正在努力覆盖draw方法,但是它已经被打断了很多并且还处于早期阶段。如果有任何兴趣,我会在这里发布。
R上。