我正在制作一个地图应用程序,其中我有20个餐厅数据,我想使用覆盖引脚在地图中显示所有餐厅。现在我的实际问题是我想在每个引脚上显示索引号(例如,如果20针在那里,所有的针都应该是索引号1,2,3代表餐馆没有列表)。任何人都可以告诉我如何将索引号放在单个图像上.. ??我想使用相同的图像进行叠加
答案 0 :(得分:3)
这是我后来在项目中发现的事实:MapView
实际上是ViewGroup
(also 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在引脚上写下你的数字。