2017-04-13 50 views
0

我使用自定義信息窗口,以便我可以實現灰色背景和白色文本顏色。然而,我周圍有一個白色的框架。我希望所有的信息窗口都是灰色的,即包括指向該點的三角形邊緣。不需要的白色框包圍我自定義的GoogleMaps信息窗口

我在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> 
+0

相關:http://stackoverflow.com/questions/31018084/map-marker-info-window-without-small-triangle-at-bottom –

回答

1

你必須重寫getInfoWindow()方法和膨脹您在該功能自定義佈局。

Documentation

public abstract View getInfoWindow (Marker marker)

提供用於標記的自定義信息窗口。如果此方法返回 視圖,則它用於整個信息窗口。如果您在調用此方法後更改此視圖 ,則這些更改不一定會在呈現的信息窗口中反映出來 。如果此方法返回空值 ,則將使用默認信息窗口框架,其內容將由 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; 
    } 

所以,我認爲你應該扭轉你的函數實現。

相關問題