我可以用一个简单的代码块定制infoWindow的内容:
private GoogleMap mMap; mMap.setInfoWindowAdapter(new InfoWindowAdapter() { @Override public View getInfoWindow(Marker arg0) { return null; } @Override public View getInfoContents(Marker arg0) { View v = getLayoutInflater().inflate(R.layout.custom_infowindow,null); return v; } }); <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#55000000" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="HELLO" android:textColor="#FF0000"/> </LinearLayout>
但这只会改变内容而不是infoWindow本身.它仍然保持白色,底部有一个小阴影,现在黑色bg可以看到一个红色的HELLO文本.我想将这个默认的infoWindow改成一个透明的黑色矩形.我该怎么做?
解决方法
您必须在getInfoWindow方法中编写代码.所以你可以自定义信息窗口.
例如
例如
@Override public View getInfoWindow(Marker marker) { // Getting view from the layout file View v = inflater.inflate(R.layout.map_popup,null); TextView title = (TextView) v.findViewById(R.id.title); title.setText(marker.getTitle()); TextView address = (TextView) v.findViewById(R.id.distance); address.setText(marker.getSnippet()); return v; } @Override public View getInfoContents(Marker arg0) { // TODO Auto-generated method stub return null; }