我有一个使用Markers
在Google地图中标记的地点列表。我想选择一个Marker
,以便用不同的颜色突出显示。我使用marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
设置了它。当我点击相同的标记或任何其他标记时,我想删除第一个标记中的选择并将其设置回默认颜色。
map.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
aa= marker.getPosition().latitude;
bb=marker.getPosition().longitude;
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
}
根据上面的代码,当我点击其他标记时,第一个标记中的选择仍然存在,并且它保持着色HUE_BLUE
。如何删除修改后的颜色并将选择内容转移到当前单击的标记?
答案 0 :(得分:1)
我刚刚对此进行了测试并且工作正常,只需添加Marker
引用作为实例变量,以便保留对最后点击的Marker
的引用,并且每次都有新的Marker
单击,将上一个设置回默认颜色。
在将!marker.equals(prevMarker)
设置为Marker
之前,您还可以检查HUE_BLUE
,这样可以随后点击Marker
将颜色设置回默认颜色。
实例变量:
Marker prevMarker;
点击听众:
mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
aa= marker.getPosition().latitude;
bb=marker.getPosition().longitude;
if (prevMarker != null) {
//Set prevMarker back to default color
prevMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
}
//leave Marker default color if re-click current Marker
if (!marker.equals(prevMarker)) {
marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
prevMarker = marker;
}
prevMarker = marker;
return false;
}
});