Android Google Map IconGenerator - 制作透明标记图标

Dan*_*ton 3 android markerclusterer google-maps-android-api-2

所以我使用a ClusterManager来聚集我的Markers,以便用户可以获得更好的体验.

我实际上已经实现了Google的代码,我在这里找到了它.想象一下,我的Marker图标是一个球.我希望图标的背景是透明的,而不是白色.

在谷歌的原教程,他们设置ImageViewIconGenerator,就像这样:

public class MyClusterManagerRenderer extends DefaultClusterRenderer<ClusteredMarker> {

private final IconGenerator mIconGenerator;
private final ImageView mImageView;

public MyClusterManagerRenderer(Context context, GoogleMap googleMap,
                                ClusterManager<ClusteredMarker> clusterManager){

    super(context, googleMap, clusterManager);

    mIconGenerator = new IconGenerator(context);
    mImageView = new ImageView(context);
    mIconGenerator.setContentView(mImageView);
}

@Override
protected void onBeforeClusterItemRendered(ClusteredMarker item, MarkerOptions markerOptions) {

    mImageView.setImageResource(item.iconPicture);
    Bitmap icon = mIconGenerator.makeIcon();
    markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon)).title(item.user);
}

...
}
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法使我的图标透明,如调用:

mImageView.setBackgroundColor(Color.TRANSPARENT);

但没有成功.我设法找到解决方案的唯一方法是直接将我的透明图像附加到IconGenerator,如下所示:

mIconGenerator.setBackground(aContext.getResources()getDrawable(R.drawable.ball));

这种方法的缺点是,ImageView有一些有趣的方法,我想称之为setPadding,虽然IconGenerator没有那个.

那么,有没有办法让我的图标透明,使用ImageView

谢谢,

Igo*_*sky 6

我找到的解决方案是这样的:

private static final Drawable TRANSPARENT_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);

// Make the background of marker transparent
mIconGenerator.setBackground(TRANSPARENT_DRAWABLE);
Run Code Online (Sandbox Code Playgroud)