Hello,Views(二)GoogleMap地图使用上篇(附源码)

来源:互联网 发布:java 程序员就业班 编辑:程序博客网 时间:2024/05/16 00:24

前言

  本文是官方教程的中文翻译,讲的是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.运行程序

 源码下载

0 0
原创粉丝点击