我搬到android-地图-扩展进行集群。但我想在运行时更改标记的图标。在最初的google标记中,有一个setIcon方法,这个方法在扩展库中缺失。是否可以将该方法添加到标记实现中,还是应该寻找另一个解决方法,比如删除标记并添加一个新的标记,而不是更改图标?
发布于 2013-08-07 16:48:21
版本1.3.1您可以直接从项目站点下载,没有添加setIcon。
currect状态为版本1.4即将发布,它包括setIcon和setAnchor。我在将zip文件上传到code.google.com时遇到了一些问题。
如果不想使用git克隆存储库,可以从GitHub repo获得最新版本:https://github.com/mg6maciej/android-maps-extensions/archive/master.zip
请注意,setIcon只适用于添加到映射中的Marker。目前,您无法以这种方式更改群集图标。
编辑:
将ClusterMarker.setIcon代码更改为
@Override
public void setIcon(BitmapDescriptor icon) {
throw new UnsupportedOperationException();
}这样的事情:
@Override
public void setIcon(BitmapDescriptor icon) {
if (virtual != null) {
virtual.setIcon(icon);
}
}在大多数情况下都会起作用。
发布于 2013-10-03 07:34:28
如果您想要实现自定义群集图标
这样做.
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)));
}其中集群标记是我的可绘制的,我正在上面写文本。
https://stackoverflow.com/questions/18104823
复制相似问题