谷歌地图中的自定义标记选项

时间:2016-11-29 18:32:11

标签: google-maps android-studio google-maps-markers

我们可以在谷歌中制作自定义标记选项吗?

我想使用Custom MarkerOptions在对话框中显示图像,例如enter image description here包含名称作为标题,以及其中的两个图像。

<ImageView
    android:id="@+id/badge"
    android:layout_width="18dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="5dp"
    android:src="@drawable/image_2"
    android:adjustViewBounds="true"></ImageView>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/title"
        android:layout_width="20dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:ellipsize="end"
        android:text="harish"
        android:singleLine="true"
        android:textColor="#ff000000"
        android:textSize="7dp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/snippet"
        android:layout_width="10dp"
        android:layout_height="10dp"
        android:ellipsize="end"
        android:src="@drawable/icon_location2"
        android:singleLine="true"
        android:textColor="#ff7f7f7f"
        android:textSize="14dp" />
</LinearLayout>

使用默认的MarkerOption,我只能在这样的对话框中获得标题,片段:

public void addMarkersToMap() {
    mArun = mMap.addMarker(new MarkerOptions()
            .position(ARUN)
            .title("Arun")
            .snippet("Match stat:")
            .icon(BitmapDescriptorFactory.defaultMarker
                 (BitmapDescriptorFactory.HUE_AZURE)));

enter image description here

帮我提一些建议。

1 个答案:

答案 0 :(得分:3)

您必须使用setInfoWindowAdapter类的GoogleMap方法。

GoogleMap mMap;//You have to initialise it.

mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
            @Override
            public View getInfoWindow(Marker marker) {
                return null;
            }

            @Override
            public View getInfoContents(Marker marker) {
                /* 
                Here you will inflate the custom layout that you want to use for marker. I have inflate the custom view according to my requirements.
               */
                View v = getLayoutInflater().inflate(R.layout.custom_marker_info_window, null);
                TextView textView = (TextView) v.findViewById(R.id.text);
                textView.setSelected(true);
                textView.setText(poiPlayerData.getName());
                return v;
            }
        });