1

タブ タブがあり、このタブをクリックすると、コンテンツを OSM マップ (その 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);
      }
}

マップをロードするための変更は何ですか...??

4

1 に答える 1

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: 私はオフラインの osmdroid を使用しており、アクティビティ内のすべてを定義し、そこにビューを貼り付ける線形レイアウトのみを定義しています。

于 2012-11-29T12:17:54.400 に答える