将MapView嵌入到Activity中

时间:2011-11-29 10:54:43

标签: java android

我正在尝试将MapView嵌入到活动的FrameLayout中,例如

UserActivity 布局

 <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
<FrameLayout android:id="@+id/map_frame" android:layout_gravity="center_horizontal" android:padding="0.0dip" android:clipChildren="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip">  
       <ImageView android:id="@+id/map_img" android:layout_gravity="center" android:layout_width="294.0dip" android:layout_height="136.0dip" android:src="@drawable/place_map_frame" />
</FrameLayout>    
</LinearLayout>

这里,在FrameLayout内部,我希望在单击列表项时显示MapView 由于某种原因,它不可能直接放在framelayout中,因为我创建了另一个扩展MapActivity的活动

<com.google.android.maps.MapView 
android:layout_gravity="center" 
android:id="@+id/mapview" 
android:clickable="true" 
android:layout_width="294.0dip" 
android:layout_height="136.0dip" 
android:layout_centerInParent="true" 
android:apiKey="@string/google_maps_key" />

UserMap 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <com.google.android.maps.MapView android:layout_gravity="center" android:id="@+id/mapview" android:clickable="true" android:layout_width="294.0dip" android:layout_height="136.0dip" android:layout_centerInParent="true" android:apiKey="@string/google_maps_key" />
</LinearLayout>
  

以下是这两项活动的代码

import com.google.android.maps.MapActivity;

import android.app.Activity;
import android.os.Bundle;

public class UserMap extends MapActivity {


    @Override 
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
          setContentView(R.layout.user_map);


    }
    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

}



import android.app.Activity;
import android.os.Bundle;
import android.widget.FrameLayout;
import android.widget.ImageView;

public class UserActivity extends Activity {


    @Override 
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

         setContentView(R.layout.user_activity);                          
    }

}

现在,我想将UserMap嵌入到UserActivity的FrameLayout中,并在单击列表项时调用UserActivity。

1 个答案:

答案 0 :(得分:0)

请记住包含Google API而不是单个Android API。

您还需要在<application>标记下的清单中包含以下行:

<uses-library android:name="com.google.android.maps" />