当前位置: 首页 > 知识库问答 >
问题:

显示Android地图实用程序库的自定义InfoWindow

公冶宏深
2023-03-14
class MyClusterRenderer extends DefaultClusterRenderer<MarkerItem> {

    public MyClusterRenderer(Context context, GoogleMap map,
            ClusterManager<MarkerItem> clusterManager) {
        super(context, map, clusterManager);
    }

    @Override
    protected void onBeforeClusterItemRendered(MarkerItem item,
            MarkerOptions markerOptions) {
        super.onBeforeClusterItemRendered(item, markerOptions);
        markerOptions.title(String.valueOf(item.getMarkerId()));
    }

    @Override
    protected void onClusterItemRendered(MarkerItem clusterItem,
            Marker marker) {
        super.onClusterItemRendered(clusterItem, marker);
    }
}

是否有人使用过这个库并知道如何显示自定义infowindow,比如在Google Maps中使用它的方式?比如:

getMap().setInfoWindowAdapter(new InfoWindowAdapter() {

    @Override
    public View getInfoWindow(Marker arg0) {
        return null;
    }

    @Override
    public View getInfoContents(Marker arg0) {
        return null;
    }
});

共有1个答案

单喜
2023-03-14
    null
ClusterManager<MarkerItem> clusterMgr = new ClusterManager<MarkerItem>(context, map);
map.setInfoWindowAdapter(clusterMgr.getMarkerManager());
clusterMgr.getClusterMarkerCollection().setOnInfoWindowAdapter(new MyCustomAdapterForClusters());
clusterMgr.getMarkerCollection().setOnInfoWindowAdapter(new MyCustomAdapterForItems());
map.setOnMarkerClickListener(clusterMgr);
clusterMgr.setOnClusterClickListener(new OnClusterClickListener<MarkerItem>() {
    @Override
    public boolean onClusterClick(Cluster<MarkerItem> cluster) {
        clickedCluster = cluster; // remember for use later in the Adapter
        return false;
    }
});
clusterMgr.setOnClusterItemClickListener(new OnClusterItemClickListener<MarkerItem>() {
    @Override
    public boolean onClusterItemClick(MarkerItem item) {
        clickedClusterItem = item;
        return false;
    }
});
class MyCustomAdapterForClusters implements InfoWindowAdapter {
    @Override
    public View getInfoContents(Marker marker) {
        if (clickedCluster != null) {
            for (MarkerItem item : clickedCluster.getItems()) {
                // Extract data from each item in the cluster as needed
            }
        }
        // build your custom view
        // ...
        return view;
    }
}
 类似资料:
  • 我目前正在研究一个双倍值,它代表总消耗时间 例如,我有一个260,这意味着消耗了260秒 要显示给用户,我想格式化它 例如,它应该是0年、0个月、0天、1小时、2分钟、30秒 但是我发现不太适合我的情况(似乎"hr"中的"h"与小时符号冲突?) 那么,如何将HH:mm:ss更改为上述情况呢? 谢谢你的帮助

  • 我目前正在尝试使用Jackson2.8.4将自定义映射类型序列化和反序列化为JSON。我已经设法基于这个答案实现了序列化,但我正在与反序列化作斗争。下面是一个例子:

  • 我正在尝试弹出一个自定义对话框,当我点击一个按钮,但它不会弹出在所有。我的应用程序基本上是一个日历,我将使用sqlite在日历中添加/保留约会和其他内容,使用对话框,这是指定约会细节的地方。 我为此使用的代码如下: 我做错了什么?

  • 我有一个项目,我使用日历视图,内置的日历为Android。 因此,我在完成本日历的某些特定任务时面临一些困难。我真的希望我能在StackOverflow上找到解决方案。 > 如果没有,那就停止阅读。 这就是我的问题: 我想显示一个下拉菜单从选定的一天,与一些元素,用户可以选择。如果用户选择某个元素,则下拉菜单的状态将仅在选定日期更改,即如果用户单击13/1,下拉菜单应显示10个元素。如果用户选择一

  • 问题内容: 在创建我自己的SimpleAdapter对象之前,因为我想更改行的颜色,所以我只是使用new SimpleAdapter(…)。现在,我正在使用自己的自定义SimpleAdapter,行颜色正在更改,但是我的文本没有得到更新。我已经调用了adapter.notifyDataSetChanged(),但它仍只显示示例文本“ TextView”。正如我所说,当我没有创建自己的适配器时,一切

  • 我正在为Android制作基于谷歌地图服务的公共交通地图。地图应该包含很多标记(超过300个),它们应该在地图放大和缩小(缩放)时调整大小。现在标记只是互相重叠,有没有办法创建像这样的自定义标记? 我自己也试过,但没有成功。使用android-map-utils库(https://github.com/googlemaps/android-maps-utils)标记现在看起来更好了,但它们不能调整