如何使用android-maps-utils更改点击的标记图标?

在我的 Android项目中,我使用 android-maps-utils库将聚类应用于地图视图上的一堆标记.只要点击一个标记,我就会通过 onClusterItemClick收到通知,这样我就可以采取行动了.
public interface OnClusterItemClickListener<T extends ClusterItem> {
    public boolean onClusterItemClick(T item);
}

现在我想让用户知道点击了哪个标记.简单的视觉反馈将是改变标记图标的(颜色).可以通过MarkerOptions对象设置图标,该对象可以在onBeforeClusterItemRendered(T item,MarkerOptions markerOptions)中访问,例如:

markerOptions.icon(
    BitmapDescriptorFactory.defaultMarker(
        BitmapDescriptorFactory.HUE_YELLOW));

如果我可以访问Marker对象本身,例如onMarkerClick (Marker marker),我可以通过setIcon更改图标.

如何更改点击的标记图标?

有关

> How to highlight the selected cluster item?
> Android Google Map V2: How to change previous clicked marker’s icon when clicked on another marker

解决方法

我注意到DefaultClusterRenderer提供了检索与ClusterItem关联的Marker对象的方法.因为我使用自定义渲染器,所以我能够访问所需的Marker对象,如下所示:
mSelectedMarker = mCustomClusterItemRenderer.getMarker(mSelectedClusterItem);

这允许我更改onClusterItemClick()中的图标:

private void updateSelectedMarker() {
    if (mSelectedMarker != null) {
        mSelectedMarker.setIcon(
                BitmapDescriptorFactory.defaultMarker(
                        BitmapDescriptorFactory.HUE_YELLOW));
    }
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...