我正在开发一个Android映射应用程序,并且已经成功将Google的ItemizedOverlay教程应用到我的代码中。我在地图上很好地绘制了我的小圈子。Android映射覆盖问题
但是,我想标记我的小标志和它的标题 - 所有的时间。我将在地图上放置几个不同的符号,并且能够显示他们的标签将是一个很大的帮助。我使用了onTap方法,但是当您点击屏幕时,它会占用整个显示屏 - 这不是很有帮助。
我还没有设法在互联网上找到这件事,所以我不乐观,但如果任何人有任何建议,那将非常感激。
我正在开发一个Android映射应用程序,并且已经成功将Google的ItemizedOverlay教程应用到我的代码中。我在地图上很好地绘制了我的小圈子。Android映射覆盖问题
但是,我想标记我的小标志和它的标题 - 所有的时间。我将在地图上放置几个不同的符号,并且能够显示他们的标签将是一个很大的帮助。我使用了onTap方法,但是当您点击屏幕时,它会占用整个显示屏 - 这不是很有帮助。
我还没有设法在互联网上找到这件事,所以我不乐观,但如果任何人有任何建议,那将非常感激。
不知道什么onTap
与此或你的意思是“它接管整个显示器”,但我想显示标签,你将不得不自己画。你可以用几种方法做到这一点。一种方法是直接覆盖ItemizedOverlay.draw
方法,并遍历每个GeoPoints
并直接将标题直接绘制到Canvas
上,并在该位置的某个小偏移处。另一种可能的方法是返回一个自定义标记;您可以创建一个Picture
,而不是仅仅返回该符号,您可以通过绘制圆圈然后在其旁边绘制一些文本来创建Picture
,然后您可以将其包装在PictureDrawable
中,并将其用作覆盖项目的标记。
我的方法的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; }
调用应用程序通过在其上下文(本),当它实例化逐项叠加。我仍然不确定这意味着什么,但是我保存mContext中的传入上下文,并在onTap()中使用它。当然,自从其他人登录到互联网后,我无法真正承认它。它确实在屏幕上显示了Overlay的信息,但是(不幸的是,对我来说)并不是我满意的方式。
我正在努力重写draw方法,但这已经被打断了很多,并且还处于早期阶段。如果有任何兴趣,我会在这里发布。
R.
尼尔更新:绘制方法被覆盖,它似乎运行良好。我的应用很好地在我的小符号旁绘制了小标签,我对此很满意。让我知道你是否对代码感兴趣。 – Rich 2010-09-27 17:30:33
啊,我现在明白了,我没有意识到你正在使用对话框。很高兴听到你想出了一些更好的东西! – 2010-10-15 14:17:27
的onTap:当我对映射后的码元点按,则显示标题,但在遮盖了地图(基本上)的方式。除此之外,我认为这并没有太大的作用,除此之外,我确信这些数据都在应用程序中。我会采取一个措施 – Rich 2010-09-21 20:45:01
糟糕,我在完成之前打回来......继续:我会看到什么我可以使用ItemizedOverlay.draw,谢谢你的提示。 – Rich 2010-09-21 20:49:28
现在是您教我的时候了;-) - 您如何在“onTap”中显示标题?我也是这样做的,但是我必须在创建'TextView'的同时完成所有这些额外的工作,并且在视图上更改'LayoutParams',以使其集中在用户点击的任何标记上。你有没有找到一种方法让覆盖层自动为你做? – 2010-09-21 21:51:34