更新:我已通过添加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