我在地图上创建了标记.当我点击它们时,自定义信息窗口总是和屏幕一样宽.
我尝试过设置,layout_width="200dp"
但没有帮助.我也尝试过设置
view.setLayoutParams(new LayoutParams(GetDipsFromPixel(200), GetDipsFromPixel(300)));
Run Code Online (Sandbox Code Playgroud)
我可以通过设置来设置textviews的宽度,snippetUi.setWidth(GetDipsFromPixel(200));
但布局仍然是屏幕宽度.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:padding="10dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#FFFFFF"
android:gravity="center_vertical">
<ImageView
android:id="@+id/worldmap_infowindow_profileimg"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/noimage" />
<TextView
android:id="@+id/worldmap_infowindow_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To do No.2."
android:textColor="#000000"
android:textSize="16sp"
android:textStyle="bold"
android:paddingLeft="5dp"/>
</LinearLayout>
<View android:id="@+id/separator"
android:background="#ababab"
android:layout_width = "fill_parent"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:layout_height="1dp"/>
<TextView
android:id="@+id/worldmap_infowindow_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="See the Giza Pyramids"
android:textColor="#000000"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/worldmap_infowindow_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="It was fascinating! It's a shame that it …
Run Code Online (Sandbox Code Playgroud) 我可以使用一个简单的代码块自定义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>
Run Code Online (Sandbox Code Playgroud)
但这只会改变内容,而不会改变infoWindow本身.它仍然保持白色,底部有一个小阴影,现在红色的HELLO文字可见黑色bg.我想将此默认infoWindow更改为透明的黑色矩形.我怎样才能做到这一点?