【问题标题】:Buttons over MapviewMapview 上的按钮
【发布时间】: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


【解决方案1】:

感谢 MH 的提示,我发现了如何以编程方式将 ImageButton 添加到我的代码中,如下所示:

    ImageButton goto_location = new ImageButton(this);
    goto_location.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            showMylocation();
        }           
    });

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(40, 40);
    params.rightMargin = 10;
    params.topMargin = 10;
    rl.addView(goto_location, params);

如果有人能提示我一些关于自定义按钮和以编程方式添加 UI 元素的优秀教程/示例,我将非常高兴。

【讨论】:

  • 也可以在你的布局 XML 中定义这个按钮。只需创建一个 RelativeLayout 并添加 osmdroid MapView 和您的按钮。
猜你喜欢
  • 2014-06-17
  • 1970-01-01
  • 2020-11-16
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 2012-02-08
相关资源
最近更新 更多