本文是官方教程的中文翻译,讲的是Google地图的使用。由于篇幅太长,分为上下篇。(源码下载)
第一部分:创建一个Map Activity
1.新建一个工程,命名为HelloGoogleMaps,注意此时选择AVD是必须是Google ApIs [Android x.x.x],也就是支持googleMap的sdk,那么生成的工程中会有有图红色部分。
2.由于Maps库本身并不是标准的Android库,你必须在Android清单文件中声明。具体操作是,打开AndroidManifest.xml文件,然后把下面的声明作为
<application>
元素的子标签:
<uses-library android:name="com.google.android.maps" />
3.你还需要接入Internet来显示地图信息,所以必须有INTERNET权限,同样在清单文件把下面的声明作为
:<manifest>元素的子标签:
<uses-permission android:name="android.permission.INTERNET" />
4.接下来为应用设置无标题主题,即全屏,以增加地图显示的面积:
<activity android:name=".HelloGoogleMaps" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
5.打开res/layout/main.xml
文件,在里面填写如下代码,简单起见,我们把com.google.android.maps.MapView直接作为根节点,无需任何布局:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="Your Maps API Key goes here" />
其中的 android:clickable属性定义了当你触摸地图时,是否响应。如果它的值设为false,那么地图将不会对你的触摸有任何响应。
android:apiKey属性存放你的应用
Maps API Key,如果过你不知道什么是Maps API Key,那么google一下,这不是本文的重点。
6.现在打开HelloGoogleMaps.java
文件,在这个Activity活动中,我们让它扩展 MapActivity
接口。
public class HelloGoogleMaps extends MapActivity {
MapActivity
是Activity的子类,提供了Maps库,用于支持地图功能。
7.在每个 MapActivity
, 必须重写isRouteDisplayed()
方法:
@Override
protected boolean isRouteDisplayed()
{
return false;
}
这个方法对于Maps service是必须的,可以为它们提供信息,当前用户是否在显示路径信息,但是在这个应用中我们用不到,所以返回false就可以了。
8.现在添加标准的onCreate()
回调方法:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
现在已经可以显示地图了,但是还缺少缩小放大的功能按钮,幸好MapView提供一个简单的缩放功能,你可以通过 setBuiltInZoomControls(boolean)
.来设置,在onCreate()
方法内的最后写入下面的代码:
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
9.运行程序