我想在运行时添加地图和一些透明的(如在下面可见的地图中)按钮来控制地图显示的类型(正常/卫星/交通)。
我可以用xml来做到这一点
<RelativeLayout ...>
<map>
<button .../>
<button .../>
</RelativeLayout>
但是,由于我想根据调试/发布选择 api 密钥,所以我无法让地图“在”按钮“下方”,这就是我尝试的方法
this.mapView = new MyMapView(this, map_key);
this.mapView.setClickable(true);
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//p.addRule(RelativeLayout.BELOW, R.id.tipo_mappa);
p.addRule(RelativeLayout.CENTER_IN_PARENT);
this.mapView.setLayoutParams( p );
layout.addView(this.mapView, 0);
结果是我只能全屏查看地图,按钮可能隐藏/在下方。
这是我的 layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayoutMappa"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!--
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:apiKey="abc"
android:clickable="true" />
-->
<RadioGroup
android:id="@+id/tipo_mappa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/mappa_normale" />
<RadioButton
android:id="@+id/sat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:text="@string/mappa_satelite" />
</RadioGroup>
<CheckBox
android:id="@+id/traffic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/tipo_mappa"
android:onClick="myClickHandler"
android:text="@string/mappe_traffic" />
</RelativeLayout>