如何在地图图钉图像上设置索引编号

时间:2011-08-04 13:21:08

标签: android android-layout android-widget

我正在制作一个地图应用程序,其中我有20个餐厅数据,我想使用覆盖引脚在地图中显示所有餐厅。现在我的实际问题是我想在每个引脚上显示索引号(例如,如果20针在那里,所有的针都应该是索引号1,2,3代表餐馆没有列表)。任何人都可以告诉我如何将索引号放在单个图像上.. ??我想使用相同的图像进行叠加

2 个答案:

答案 0 :(得分:3)

这是我后来在项目中发现的事实:MapView实际上是ViewGroupalso mentioned here)。因此,您可以只创建一个按钮(或文本视图,或某些嵌套布局,或者您希望在地图上方显示的任何内容),而不是使用某种复杂的Overlay和附加drawable,为其分配MapView.LayoutParams实例,并且将其添加到MapView

在代码中:

// Create the overlay pin
View overlayPin = getLayoutInflater().inflate(R.layout.overlay_pin, null);
// Number it according to your question, e.g.
((TextView)(overlayPin.findViewById(R.id.overlay_text))).setText("1"); 

假设您要将引脚放在地理坐标-60,30上。

// Set a layout params to the pin.
overlayPin.setLayoutParams(new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, new GeoPoint(-60000000, 30000000), MapView.LayoutParams.BOTTOM_CENTER);
// Add the pin to the map
mapView.addView(overlayPin);

通过这种方式,您只能为引脚的背景设置一个图形资源,并使用TextView进行编号。

答案 1 :(得分:0)

您需要扩展drawable类并覆盖onDraw方法。你可以使用canvas.drawText在引脚上写下你的数字。