Hello,Views(二)GoogleMap地图使用上篇(附源码)
前言
本文是官方教程的中文翻译,讲的是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.运行程序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?