0

我有一个问题,是否可以通过 android map utils 在谷歌地图上设置具有多图像视图和文本视图的布局作为集群标记?如何?如果有人提供了一个很好的例子,这将是我想做的一个例子:

在此处输入图像描述

谢谢

4

1 回答 1

2

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

您可以使用所需的内容创建布局,获取此布局的位图,这会将位图作为标记添加到地图中,因为添加标记只需要图像。*您需要在创建位图之前设置数据

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

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;
}

祝你好运,这很痛苦。

于 2016-08-29T13:24:21.897 回答