Dan*_*ton 3 android markerclusterer google-maps-android-api-2
所以我使用a ClusterManager来聚集我的Markers,以便用户可以获得更好的体验.
我实际上已经实现了Google的代码,我在这里找到了它.想象一下,我的Marker图标是一个球.我希望图标的背景是透明的,而不是白色.
在谷歌的原教程,他们设置ImageView的IconGenerator,就像这样:
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?
谢谢,
我找到的解决方案是这样的:
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)
| 归档时间: |
|
| 查看次数: |
4877 次 |
| 最近记录: |