2011-09-28 76 views
1

我有一張地圖的圖像,我想在地圖上繪製一些點/標記。這些標記必須是可點擊的。我使用了一個自定義視圖類來繪製我需要的點上的標記。標記被繪製出來,但問題是標記不可點擊或者當我在自定義視圖上設置onClick監聽器時,整個圖像接收到單擊事件(無論我點擊圖像,onClick被調用,但我只想點擊標記來啓動onClick)。有人可以幫助我嗎?如何在Android中使重疊圖像可點擊?

回答

0

你必須創建你自定義的MapOverlay,並在裏面放置代碼的功能。在上面的代碼中,重寫OnTap方法。

public class MapOverlay extends ItemizedOverlay { 

private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); 
private Context mContext; 

public MapOverlay(Drawable defaultMarker,Context context) { 
    super(boundCenterBottom(defaultMarker)); 
    mContext = context; 
} 

@Override 
protected OverlayItem createItem(int i) { 
    // TODO Auto-generated method stub 
    return mOverlays.get(i); 
} 

public void addOverlay(OverlayItem overlay) { 
    mOverlays.add(overlay); 
    populate(); 
} 

public void clearOverlay() { 
    mOverlays.clear(); 
    populate(); 
} 
@Override 
public int size() { 
    // TODO Auto-generated method stub 
    return mOverlays.size(); 
} 



@Override 
protected boolean onTap(int index) { 
    OverlayItem item = mOverlays.get(index); 
    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 
    dialog.setTitle(item.getTitle()); 
    dialog.setMessage(item.getSnippet()); 
    dialog.show(); 
    return true; 
} 

}

+0

大。將試用它並讓你知道@FMMobile Felipe Meneze。 – Ashwin

+0

ItemizedOverlay僅用於在MapView上添加疊加項目。但我沒有使用MapView,我擁有的只是一張圖片。我想繪製一些更小的圖像,並使這些小圖像可點擊。 – Ashwin

+0

Felipe Meneze我嘗試使用上面但coudn't becoz我沒有使用地圖api。我實際上是通過在我需要的座標處具有靜態地圖圖像和繪製標記來模擬地圖,並且我成功地通過擴展View類nad覆蓋onDraw方法來實現。但現在問題是標記不可點擊。地圖上任何地方的觸摸都會調用onTouch方法。 – Ashwin