更新:我已通過添加previousMarker對象解決了性能問題。因此只有以前點擊過的標記將被刪除並替換爲默認圖標。但是,當我點擊標記時信息窗口仍然不顯示。Android Google Map V2:點擊另一個標記時如何更改之前點擊的標記圖標
我有地圖視圖並設置了一些標記。我想要的是當我點擊一個標記時,它將其圖標更改爲不同的圖標,當我點擊另一個標記時,上一個標記的圖標應該更改爲原始圖標。
我所做的就是這樣,但只要點擊標記就會改變標記圖標。所以如果我點擊2個標記,我會得到2個新的圖標出現,同時我想要的只是當前點擊標記更改其圖標。
所以我也通過添加2行代碼來完成這樣的事情。它成功地做我想做的事情,但它有一些缺點(見下文)。
@Override
public boolean onMarkerClick(Marker marker) { //Called when a marker has been clicked or tapped.
mMap.clear();
populateAllMarkersOnMap();//repopulate markers on map
LatLng markerPos=marker.getPosition();
String markerLocationName=marker.getTitle();
String markerSubCategoryName=marker.getSnippet();
marker.remove(); //remove the current clicked marker
MarkerOptions markerOptions =
new MarkerOptions().position(markerPos)
.title(markerLocationName)
.snippet(markerSubCategoryName)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.new_icon));// Changing marker icon
mMap.addMarker(markerOptions); //add marker with new icon into map
return false;
}
缺點是1 /它「禁用」信息窗口(同樣的事情也發生在第一種方式)。 2 /清除地圖上的所有標記並再次設置所有標記。想象一下,我有100個標記,應該是我每次點擊時的性能問題?
的populateAllMarkersOnMap()可以在此刻簡單是這樣的:
private void populateAllMarkersOnMap(){
setMarker(latA1, lonA1, "A1","A1.1");
setMarker(latA2, lonA2, "A2","A2.1");
// ... (100 times or populated via a loop)
};
那麼,有沒有辦法讓以前被點擊標記以更改其圖標回默認,當我點擊一個新的標誌?爲我的英語道歉,如果你認爲我應該爲我的問題提出另一個標題,請幫助。
你採取什麼'previousMarker'標記爲初始階段? – pRaNaY 2015-11-02 09:36:28