Google 地图标记 showinfowindow 自定义 Android

Google map marker showinfowWindow customize Android

在我的应用程序中,我必须在位置显示有关标记的信息。 这是我的工作代码。

mPerth = mMap.addMarker(new MarkerOptions()
        .position(PERTH)
        .title("Perth")
        .snippet("Population: Perth")
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));
mPerth.showInfoWindow();

这看起来像这样的图片:

我想要看起来像这样的图像: 如果你有什么方法,请投票给我。

试试这个。

marker.setInfoWindowAnchor(1f,1f)

https://developers.google.com/android/reference/com/google/android/gms/maps/model/Marker#public-void-setinfowindowanchor-float-anchoru,-float-anchorv

编辑:

对于自定义信息窗口,您必须具体实施 GoogleMap.InfoWindowAdapter 并膨胀您的 custom_info_window_layout.xml getInfoWindow(Marker marker) 方法中的文件。

public class CustomInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {

Activity context;
CustomInfoWindow(Activity  context){
    this.context =context;
}

@Override
public View getInfoWindow(Marker marker) {
    View view = context.getLayoutInflater().inflate(R.layout.custom_info_window_layout, null);

    TextView title =(TextView) view.findViewById(R.id.tv_title);
    TextView snippet =(TextView) view.findViewById(R.id.tv_snippet);

    title.setText(marker.getTitle());
    snippet.setText(marker.getSnippet());

    return view;
}

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

}

最后在地图上设置这个 CustomInfoWindowAdapter

map.setInfoWindowAdapter(new CustomInfoWindowAdapter(MainActivity.this))
static final LatLng PERTH = new LatLng(-31.90, 115.86);
Marker marker = mMap.addMarker(new MarkerOptions()
                    .position(PERTH)
                    .anchor(0.5,0.5)
                    .rotation(90.0)
                    .infoWindowAnchor(0.5,0)); // add this line

指定标记图像中显示信息时锚定信息 window 的点。默认为图像的顶部中间。