如何在 android 中 select 和 deselect 中的 google 地图中的标记?
How to select and deselect a marker in google maps in android?
我有一个地点列表,这些地点在 google 地图中使用 Markers
标记。我想 select 一个 Marker
以便它会以不同的颜色突出显示。我已经使用 marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
设置了它。当我点击同一个标记或任何其他标记时,我想删除第一个标记中制作的 selection 并将其设置回默认颜色。
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));
}
根据上面的代码,当我点击其他标记时,第一个标记中产生的 select 离子仍然存在,并且保持彩色 HUE_BLUE
。如何删除修改后的颜色并将 selection 转移到当前单击的标记?
我刚刚对此进行了测试并且它有效,只需添加一个 Marker
引用作为实例变量以保留对上次单击 Marker
的引用,并且每次都会有一个新的 [=12] =]点击,将上一个设置回默认颜色。
您还可以在将 Marker
设置为 HUE_BLUE
之前检查 !marker.equals(prevMarker)
,这将允许随后单击 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;
}
});
我有一个地点列表,这些地点在 google 地图中使用 Markers
标记。我想 select 一个 Marker
以便它会以不同的颜色突出显示。我已经使用 marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
设置了它。当我点击同一个标记或任何其他标记时,我想删除第一个标记中制作的 selection 并将其设置回默认颜色。
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));
}
根据上面的代码,当我点击其他标记时,第一个标记中产生的 select 离子仍然存在,并且保持彩色 HUE_BLUE
。如何删除修改后的颜色并将 selection 转移到当前单击的标记?
我刚刚对此进行了测试并且它有效,只需添加一个 Marker
引用作为实例变量以保留对上次单击 Marker
的引用,并且每次都会有一个新的 [=12] =]点击,将上一个设置回默认颜色。
您还可以在将 Marker
设置为 HUE_BLUE
之前检查 !marker.equals(prevMarker)
,这将允许随后单击 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;
}
});