在 Clustered Marker 中传递数据

Pass data inside Clustered Marker

这些天我真的在使用 google map util 苦苦挣扎,一个又一个挑战,网上没有很好的例子或解决方案。

这是我的代码:

@Override
protected void onBeforeClusterRendered(Cluster<ItemCluster> cluster, 
                                         MarkerOptions markerOptions) {

    View marker = (getActivity()
                .getLayoutInflater())
                .inflate(R.layout.info_windows, null);


    Bitmap bitmap = createDrawableFromView(
                getActivity(), marker);

    markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap));

}

问题是在我将视图发送到此函数以制作标记位图之前,我尝试在我的 info_windows.xml 中设置一些数据,这些数据包含在一些 ImageView 和 TextView 中。但是应用程序挂起,您知道如何完成此操作吗?

Bitmap bitmap = createDrawableFromView(
                getActivity(), marker);

我通过创建一个 IconGenerator 对象解决了我的问题,然后从中创建视图,我就是这样做的:

首先我制作了对象:

private final IconGenerator mClusterIconGenerator = new IconGenerator(getActivity().getApplicationContext());

和包含我们的 XML 服装标记视图文件的视图:

View markerIcon = getActivity().getLayoutInflater().inflate(R.layout.marker_icon, null);

然后在 icongenerator 上设置视图:

mMarkerIconGenerator.setContentView(markerIcon);

然后您需要启动图像视图、文本视图...然后设置要在服装标记内显示的值,例如:

mMarkerViento = (ImageView) clusterIcon.findViewById(R.id.viento);

然后在 ovveride 方法中:

    @Override
        protected void onBeforeClusterItemRendered(ItemCluster item, MarkerOptions markerOptions)

               mMarkerViento.setImageResource(R.drawable.viento_ne2);

最后从图标生成器生成位图对象,如下所示:

   mMarkerIconGenerator.setBackground(TRANSPARENT_DRAWABLE); // set the background as transparent
    Bitmap bitmap = mMarkerIconGenerator.makeIcon(); // make a bitmap object from the icon object
    markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap)); // set the bitmap as marker icon

祝你好运和 tanx