如何在 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;
        }

    });