我正在制作一款地图应用程序,其中包含20家餐厅的数据,并希望使用叠加针在地图上显示所有餐厅。现在我的实际问题是,我想在每个针上显示索引号(例如如果有20个针,则所有针都应具有表示列表中餐厅编号的索引号1、2、3)。 有人可以告诉我如何在单个针图像上放置索引号?我想使用相同的图像进行叠加。
我正在制作一款地图应用程序,其中包含20家餐厅的数据,并希望使用叠加针在地图上显示所有餐厅。现在我的实际问题是,我想在每个针上显示索引号(例如如果有20个针,则所有针都应具有表示列表中餐厅编号的索引号1、2、3)。 有人可以告诉我如何在单个针图像上放置索引号?我想使用相同的图像进行叠加。
MapView
实际上是一个ViewGroup
(此处也提到了)。因此,您可以使用一个按钮(或文本视图、一些嵌套布局,或者任何想要显示在地图上方的控件),分配一个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
显示编号。