java - 当标记变得可见时,在标记周围添加一个圆圈

标签 java android google-maps android-maps-extensions

目前我正在使用 Google Maps Android API Utility 进行集群,但我没有找到在标记从集群中可见/呈现时在标记周围添加圆圈的方法。我希望每个标记都有一个圆圈。 Android map 扩展库中有什么方法可以实现这一点吗?

这是集群的时候 when clustered

当集群渲染当前行为

When rendered cluster this is the current behavior

期望的行为

Desired behavior

最佳答案

我认为这个用于聚类的库可以帮助您。 Android map 扩展 https://github.com/mg6maciej/android-maps-extensions

Android Get the markers that are not clustered

如果您只需要更改标记的图标,您可以制作 png 图像(例如,带有默认标记图标和圆圈)并将其作为资源粘贴到标记。

map.addMarker(new MarkerOptions()
     .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_circle)));

如果您需要自定义圆圈,您可以通过编程方式创建它,但您仍然需要自定义标记图标(当然还需要提供不同版本(hdpi、xhdpi ...)以调整大小)

// circle
int diameter = 500;
Bitmap bm = Bitmap.createBitmap(diameter, diameter, Bitmap.Config.A
Canvas canvas = new Canvas(bm);
Paint p = new Paint();
p.setColor(getResources().getColor(R.color.green));
canvas.drawCircle(diameter / 2, diameter / 2, diameter / 2, p);


// marker icon through Drawable
Drawable drawable = getResources().getDrawable(R.drawable.marker_icon, null);
// you should choose bounds
// drawable.setBounds(left, top, right, bottom);
drawable.draw(canvas);

//OR marker icon through Bitmap
Bitmap bmIcon = BitmapFactory.decodeResource(getResources(), R.drawable.marker_icon);
// choose correct top and left margin
canvas.drawBitmap(bmIcon, diameter / 2, diameter / 2, p);


map.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bm)));

关于java - 当标记变得可见时,在标记周围添加一个圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838224/

相关文章:

java - 除 OSGI、EJB(不是真的)和 Impala 之外的模块框架

android - onLayoutChange() 调用次数过多

javascript - 如何将多个图像叠加到谷歌地图上

json - 如何从 V3 Google map API 中提取邮政编码

javascript - 打印时未显示 Google map

java - 两种方式绑定(bind)Android

java - 检查 j2me 中的互联网是否正常工作

java - 如何从谷歌应用程序调用.Net网络服务?

java - 如何从大量值创建缩放图像

android - 如何从不同的 Activity 获取主启动 Activity 的 Intent?