2012-04-25 41 views
0

我正在使用包含OverlayItems列表的ItemizedOverlay在MapView頂部顯示標記。我的問題是,當OverlayItem使用爲疊加層定義的默認標記時,其getMarker()方法返回null。有另一種方法可以獲得標記圖像嗎?我想看看我是否可以在onTap()中設置動畫效果。onTap中獲取地圖疊加標記圖標

我在地圖上顯示了一堆標記,其中許多標記使用相同的圖像,所以我認爲最好使用覆蓋圖的默認圖像來節省內存。對於這個應用程序,可能會有超過100個標記顯示給定的覆蓋。

回答

0

如何解決這個問題有幾種不同的方法。我展示了我所知道的最簡單的一個,如果它不能解決您的問題,請告訴我。

public class MyItemizedNewOverlay extends ItemizedOverlay<OverlayNewItem> { 

    private ArrayList<OverlayNewItem> myOverlays ; 
    Drawable defaultMarker; 
    Context context; 


    public MyItemizedNewOverlay(Drawable defaultMarker, Context context) { 
     super(boundCenterBottom(defaultMarker)); 
     this.defaultMarker = defaultMarker; 
     this.context = context; 
     myOverlays = new ArrayList<OverlayNewItem>(); 
     populate(); 
    } 
    . . .  
} 

有了這個,你可以使用默認的標記在你的代碼和Ontap()