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

Android 如何在地图pin图像上设置索引编号,android,android-layout,android-widget,Android,Android Layout,Android Widget,我正在制作一个地图应用程序,其中我有20个餐厅数据,我想用覆盖pin显示地图中的所有餐厅。现在我的实际问题是我想在每个pin上显示索引号(例如,如果有20个pin,则所有pin都应该有索引号1、2、3,代表列表中的餐厅号)。有人能告诉我如何在单针图像上放置索引号吗?…我想使用相同的图像进行覆盖您需要扩展drawable类并覆盖onDraw方法。因为您可以使用canvas.drawText在pin上写下您的号码。这是我后来在我的项目中发现的一个事实:MapView实际上是一个ViewGroup()

我正在制作一个地图应用程序,其中我有20个餐厅数据,我想用覆盖pin显示地图中的所有餐厅。现在我的实际问题是我想在每个pin上显示索引号(例如,如果有20个pin,则所有pin都应该有索引号1、2、3,代表列表中的餐厅号)。有人能告诉我如何在单针图像上放置索引号吗?…我想使用相同的图像进行覆盖

您需要扩展drawable类并覆盖onDraw方法。因为您可以使用canvas.drawText在pin上写下您的号码。

这是我后来在我的项目中发现的一个事实:
MapView
实际上是一个
ViewGroup
()。因此,您可以创建一个按钮(或一个textview,或一些嵌套布局,或任何您想在地图上方显示的内容),为其指定一个
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);

通过这种方式,您只能将一个图形资源用作pin的背景,并使用
TextView
进行编号。

为此,您有可绘制数组的循环(带索引号的img)关于你得到的placemark的数量…有没有办法在同一张图像上添加索引号…假设将来我的结果得到递增,那么带索引号的img是不正确的选项。你可以使用BalloodOverlay,但只有当你点击该标记时才会看到:(