我正在MapActivity.java中创建一个OSMdroid地图视图,我想添加按钮和弹出窗口 - 我只知道如何在.xml文件中完成这个操作,但由于这个MapView没有使用任何.xml文件,我不知道如何在我的java代码中放置(图片)按钮。
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Setup base map
final RelativeLayout rl = new RelativeLayout(this);
CloudmadeUtil.retrieveCloudmadeKey(getApplicationContext());
final MapView osmv = new MapView(this, 256);
myMapController = osmv.getController();
rl.addView(osmv, new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
osmv.setBuiltInZoomControls(true);
osmv.setMultiTouchControls(true);
myLocationoverlay = new MyLocationOverlay(this, osmv);
//*snip* setup of map, mapcontrollers, tiles etc...
osmv.getOverlays().add(tilesOverlay);
osmv.getOverlays().add(myLocationoverlay);
this.setContentView(rl);
}
编辑: 我在谈论像这样的按钮
<ImageButton
android:id="@+id/map_goto_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/goto_location"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:id="@+id/goto_location" />
MapView
添加到RelativeLayout
中,因此只需将任何其他UI元素添加到此相同的容器中即可。只需确保在添加MapView
之后添加它们,以便它们位于顶部。您可以在代码中设置所有UI元素,也可以在xml中声明它们并使用LayoutInflater
进行填充。另外,在创建/填充后不要忘记添加它们。 - MH.