如何使用 xml 布局作为聚类标记 Android

how to use xml layout as cluster marker Android

我有一个问题,是否可以通过 android 地图实用程序将具有多个图像视图和文本视图的布局设置为 google 地图上的聚类标记?如何?如果有人提供了一个很好的例子,那就太好了,这是我想做的事情的例子:

谢谢

我不知道是否有比我用了一年的方法更简单的方法如果数据集很大,这种方法会花费很多时间,所以在小数据集上使用它或与其他选项的设计师。

您可以根据需要创建布局,获取此布局的位图,然后将位图作为标记添加到地图,因为添加标记仅获取图像。 *创建位图前需要设置数据

第一步膨胀并为您的布局设置数据

View marker = ((LayoutInflater) getActivity()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE))
                .inflate(R.layout.marker_layout, null);

其次从这个视图中获取位图

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

第三次添加位图作为标记

   MarkerOptions mo = new MarkerOptions().position(
                                    new LatLng(lat, lng))
                                    // .title(address)
                                    .snippet(i + "")
                                    .icon(BitmapDescriptorFactory
                                            .fromBitmap(bitmap));
                            Marker customMarker = googleMap.addMarker(mo);

这是获取位图的方法

public static Bitmap createDrawableFromView(Context context, View view) {
    DisplayMetrics displayMetrics = new DisplayMetrics();
    if (context != null) {
        ((Activity) context).getWindowManager().getDefaultDisplay()
                .getMetrics(displayMetrics);
        view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
        view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
        view.layout(0, 0, displayMetrics.widthPixels,
                displayMetrics.heightPixels);
        view.buildDrawingCache();
        Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(),
                view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

        Canvas canvas = new Canvas(bitmap);
        view.draw(canvas);
        return bitmap;
    }
    return null;
}

祝你好运,这是一个很大的痛苦。