如何显示osm地图

时间:2012-09-06 05:41:30

标签: android

我有一个标签页选项卡,点击此选项卡后,我想将内容设置为OSM Map(其setContent())。我这样做:

View bottomMap = createBottomTabView(bottomTabHost.getContext(), "Map", R.drawable.map);
bottomTabHost.addTab(bottomTabHost.newTabSpec("Map").setIndicator(bottomMap).setContent(new Intent(this, OSMMapClass.class)));

public class MapBottomTab extends MapActivity 
{
      @Override
      public void onCreate(Bundle savedInstanceState) 
      {
         super.onCreate(savedInstanceState);
         org.osmdroid.views.MapView mapView = new org.osmdroid.views.MapView(this, 256);
         setContentView(mapView);
      }
}

加载Map的变化应该是什么???

1 个答案:

答案 0 :(得分:0)

您只需要在LinearLayout中的xml中定义地图布局,例如像

    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:id="@+id/mapLayoutFinal"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <!-- you do your map layout (<org.osmdroid.views.MapView ... /> ) -->

    </LinearLayout>

然后在你的活动中在create方法中声明这个布局,如下所示:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_fragment);
LinearLayout rl = (LinearLayout) findViewById(R.id.mapLayoutFinal);
    this.mOsmv.setLayoutParams(new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    rl.addView(mOsmv);

这应该有效。 PS:我使用的是一个online osmdroid,我只是定义了活动中的所有内容,只有一个线性布局,我将视图粘贴在那里。