2011-08-04 57 views
7

我正在製作一個地圖應用程序,其中有20個餐廳數據,並且我想使用覆蓋圖釘顯示地圖中的所有餐廳。現在,我的實際問題是我想顯示索引編號每個引腳(例如,如果有20個引腳,所有引腳都應該有索引號1,2,3,它們代表餐廳號)。任何人都可以告訴我如何將索引編號放在單引腳圖像上??我想使用相同的圖像進行覆蓋如何在地圖上設置索引編號圖像

+0

爲此,你有循環的數組可繪製(img與索引號碼)相對於你得到的地標數量...... – Hanry

+0

有什麼方法可以在同一圖像上添加索引號...假設將來我的結果得到增加然後img與索引號是不正確的選擇。 –

+0

您可以使用balloonOverlay,但僅當您點擊該標記時纔會看到:( – Hanry

回答

3

這是我後來在我的項目中發現的一個事實:MapView實際上是ViewGroupalso mentioned here)。因此,您可以創建一個按鈕(或者一個textview,或者一些嵌套的佈局,或者任何想要在地圖上顯示的任何內容),而不是使用某種複雜的Overlay和附加繪圖工具,將它分配給一個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進行編號。

0

您需要擴展drawable類並覆蓋onDraw方法。在這一點上,你可以使用canvas.drawText來寫你的編號。