2011-07-03 128 views
1

我使用android-mapviewballoons庫來顯示氣球。 因此,一旦用戶點擊我的標記,就會顯示氣球。如何在地圖顯示時在地圖上顯示氣球?

我有問題:如何顯示特定項目的氣球而無需等待用戶點擊?

Upd。如何識別我? 目前,我有以下幾點:

public class Map extends MapActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     // here I have extras.getDouble("lat") and extras.getDouble("lng") - 
     // the location balloon should be shown for 
     ... 
     itemizedOverlay = new MapOverlay(drawable, mapView); 
     for (int i = 0; i < items.getCount(); i++) { 
      // here I add markers, one of them will have lat and lng equal to 
      // the values passed in extras 

    public class MapOverlay extends BalloonItemizedOverlay<OverlayItem> { 
     ... 
     protected OverlayItem createItem(int i) { 

此外,關於下面的代碼:

// BalloonOverlayView is a raw type. References to generic type BalloonOverlayView<Item> should be parameterized 
BalloonOverlayView bov = new BalloonOverlayView(context, 50); 
// What is item there? should be getItem(i)? 
bov.setData(item); 
// The method setPosition(int) is undefined for the type BalloonOverlayView 
BalloonOverlayView.setPosition(i); 
+0

你最好問一下該庫的開發人員,他們可能會也可能不會看到這個StackOverflow問題。 – CommonsWare

+0

謝謝,@CommonsWare。其實,我已經給他發了一條消息,但是希望這裏的某個人也已經實施了。 –

回答

4

Plase參考this tutorial.

@Override protected OverlayItem createItem(int i)方法,你可以擡高該氣球ovarlay爲您的特定指數。假設你的具體點是2,那麼你可以做上面的方法按照

if(i==2){ 
BalloonOverlayView bov = new BalloonOverlayView(context, 50); 
      bov.setData(item); 
      BalloonOverlayView.setPosition(i); 
      BalloonOverlayView.setGeoPoint(geoPoint); 

      MapView.LayoutParams params = new MapView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, geoPoint,MapView.LayoutParams.BOTTOM_CENTER); 
      params.mode=MapView.LayoutParams.MODE_MAP; 
      mapView.addView(bov, params); 
} 
+0

謝謝,但它不回答我的問題。 –

+0

@LA_是否想要在地圖上顯示所有插針的氣球,或僅顯示特定的氣球而不選擇它? – Harshad

+0

對於一個特定標記,而不選擇該標記。 –

3

試試這個

itemizedOverlay.onTap(point2, mapView); 

你必須通過GeoPoint對象識別它,這裏是描述

中的onTap

public boolean onTap(GeoPoint p,MapView mapView)

處理輕擊事件。如果它的土地上的項目抽頭纔會被處理,並已覆蓋onTap(INT)返回true

氣球庫已經可以覆蓋它,所以你只需要調用該方法的onTap。