1

I moved to android-maps-extensions for clustering. But I want to change the icons of the markers during runtime. In the original google maps lib markers have a setIcon method, that is missing in the extension lib. Would it be feasible to add the method to the Marker implementation or should I look for another workaround like deleting the marker and add a new one instead of changing the icon?

4

2 回答 2

0

如果要实现自定义聚类图标

做这个 ..........

for (Cluster cluster : clusterList) {

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inMutable = true;
    options.inPurgeable = true;
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.cluster_marker, options);

    Canvas canvas = new Canvas(bitmap);

    Paint paint = new Paint();
    paint.setColor(getResources().getColor(R.color.white));
    paint.setTextSize(30);

    canvas.drawText(String.valueOf(cluster.getMarkerList().size()), 10,
            40, paint);

    googleMap.addMarker(new MarkerOptions()
            .position(
                    new LatLng(cluster.getClusterLatitude(), cluster
                            .getClusterLongitude()))
            .snippet(String.valueOf(cluster.getMarkerList().size()))
            .title("Cluster")
            .icon(BitmapDescriptorFactory.fromBitmap(bitmap)));

}

其中集群标记是我的可绘制对象,我正在上面写文字。

于 2013-10-03T07:34:28.980 回答
0

1.3.1版本可以直接从项目网站下载,没有setIcon添加。

当前状态是即将发布 1.4 版本,它包括setIconsetAnchor. 我在将 zip 文件上传到 code.google.com 时遇到了一些问题。

如果您不想使用 git 克隆存储库,可以从 GitHub 存储库获取最新版本:https ://github.com/mg6maciej/android-maps-extensions/archive/master.zip

请注意,这setIcon仅适用于Marker您添加到地图的 s。您暂时无法以这种方式更改集群图标。

编辑:

更改ClusterMarker.setIcon代码

@Override
public void setIcon(BitmapDescriptor icon) {
    throw new UnsupportedOperationException();
}

类似于:

@Override
public void setIcon(BitmapDescriptor icon) {
    if (virtual != null) {
        virtual.setIcon(icon);
    }
}

在大多数情况下应该可以工作。

于 2013-08-07T16:48:21.360 回答