【发布时间】:2012-11-11 19:03:09
【问题描述】:
我在我的 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来填充它们。另外,不要忘记在创建/膨胀后添加它们。
标签: java android android-layout openstreetmap osmdroid