不需要的白框围绕着我自定义的GoogleMaps信息窗口

时间:2017-04-13 17:35:32

标签: android android-layout google-maps-api-3

我使用自定义信息窗口,以便我可以实现灰色背景和白色文本颜色。然而,我周围有一个白框。我希望所有信息窗口都是灰色的,包括指向该点的三角形边缘。

我在Activity

中使用此代码
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
    @Override  // Use default InfoWindow frame
    public View getInfoWindow(Marker marker) { return null; }
    @Override // Defines the contents of the InfoWindow
    public View getInfoContents(Marker marker) {
        View v = getLayoutInflater().inflate(R.layout.map_info_window, null);
        TextView tv_location = (TextView) v.findViewById(R.id.tv_location);
        tv_location.setText(marker.getTitle());
        return v;
    }});

这是我的布局:

<!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map_info_window"
    android:layout_width="match_parent"
    android:background="@color/light_grey"
    android:orientation="horizontal"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/tv_location"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/white" />

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您必须覆盖getInfoWindow ()方法并在该功能中为您自定义布局充气。

来自Documentation

  

public abstract View getInfoWindow (Marker marker)

     

为标记提供自定义信息窗口。如果此方法返回a   视图,它用于整个信息窗口。如果您更改此视图   调用此方法后,这些更改不一定是   反映在渲染信息窗口中。如果此方法返回null,   将使用默认信息窗口框架,内容由提供   getInfoContents(Marker)

 @Override  // Use default InfoWindow frame
    public View getInfoWindow (Marker marker){
        View v = getLayoutInflater().inflate(R.layout.map_info_window, null);
        TextView tv_location = (TextView) v.findViewById(R.id.tv_location);
        tv_location.setText(marker.getTitle());
        return v;
    }
    @Override // Defines the contents of the InfoWindow
    public View getInfoContents (Marker marker){
        // TODO Auto-generated method stub
        return null;
    }

所以我认为你应该扭转你的功能实现。