一、简介

二、代码
1.xml
(1)main.xml

 <?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:id="@+id/mapViewId"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0pkT0EYxPi2VZ5beDaJ0g08aCtWGmKTFnOvj6iw"
/>
</LinearLayout>

(2)AndroidManifest.xml

 <uses-permission android:name="android.permission.INTERNET" />

2.java
(1)MainActivity.java

 package com.se7en;

 import java.util.List;

 import android.graphics.drawable.Drawable;
import android.os.Bundle; import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem; public class MainActivity extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView)findViewById(R.id.mapViewId);
//设置mapView显示用于缩放的工具条
mapView.setBuiltInZoomControls(true); Drawable drawable = getResources().getDrawable(R.drawable.index);
FirstOverlay firstOverlay = new FirstOverlay(drawable,this);
//创建一个GeoPoint对象,用于通过经纬度指定地图上的一个点
GeoPoint point = new GeoPoint(19240000,-99120000);
//创建一个OverlayItem对象,代表图层上的一个标记
OverlayItem overlayItem = new OverlayItem(point,"hola,mundo!","I'm in china!");
firstOverlay.addOverlay(overlayItem); //调用MapView对象的getOverlays(),得到所有的图层对象
List<Overlay> mapOverlays = mapView.getOverlays();
mapOverlays.add(firstOverlay);
} @Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}

(2)FirstOverlay.java

 package com.se7en;

 import java.util.ArrayList;

 import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem; /**
* 在MapView之上创建一个图层,需要创建一个类,实现Overlay,并生成该类的对象,然后将该对象添加到MapView.getOverlays()中;
* 一个overlayItem对象就代表了一个在地图上显示的标记
* @author se7en
*
*/
public class FirstOverlay extends ItemizedOverlay<OverlayItem>{
//创建一个List对象,用于持有该图层当中所有的标记对象
private ArrayList<OverlayItem> overlayItems = new ArrayList<OverlayItem>();
private Context context; public FirstOverlay(Drawable defaultMaker) {
super(boundCenter(defaultMaker));
} /**
* @param defaultMaker 指定标记所使用的默认图片
* @param context
*/
public FirstOverlay(Drawable defaultMaker,Context context) {
//boundCenter(defaultMaker):将要标记的经纬度点放在defaultMaker的正下方
super(boundCenter(defaultMaker));
this.context = context;
} //用于将生成好的overlayItem对象添加到List当中
public void addOverlay(OverlayItem overlayItem){
overlayItems.add(overlayItem);
//为新添加进来的overlayItem统一执行相关的操作(具体待考证。。。)
populate();
} //用于创建一个OverlayItem对象
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return overlayItems.get(i);
} //返回当前的Overlay当中所包含的overlayItem对象
@Override
public int size() {
// TODO Auto-generated method stub
return overlayItems.size();
} //当用户点击标记执行的操作
@Override
public boolean onTap(int index) {
OverlayItem item = overlayItems.get(index);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(item.getTitle());
builder.setMessage(item.getSnippet());
Dialog dialog = builder.create();
dialog.show();
return true;
} }

ANDROID_MARS学习笔记_S03_008_GOOGLEMAP2的更多相关文章

  1. ANDROID_MARS学习笔记_S01_012_RatingBar

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  2. ANDROID_MARS学习笔记_S01_012_SeekBar

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  3. ANDROID_MARS学习笔记_S01_011ProgressBar

    文档是这样来设置样式 <ProgressBar android:layout_width="wrap_content" android:layout_height=" ...

  4. ANDROID_MARS学习笔记_S01_010日期时间控件

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  5. ANDROID_MARS学习笔记_S01_009Relative_LAYOUT例子

    1. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android ...

  6. ANDROID_MARS学习笔记_S01_008Linear_layout例子

    1.netstone_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  7. ANDROID_MARS学习笔记_S01_007Linear_layout嵌套与layout_weight的设置

    一.介绍 二.1.linear_layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...

  8. ANDROID_MARS学习笔记_S01_006ImageView

    一.ImageView介绍 设置scalType Must be one of the following constant values. Constant Value Description ma ...

  9. ANDROID_MARS学习笔记_S01_005CheckBox

    一. 1.checkbox_layout.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...

随机推荐

  1. MySQL索引视图

    一.索引 索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作. 索引是数据库的一个对象, ...

  2. MySQL解压版安装配置详解

    MySQL解压版安装起来比较简单,步骤相对较少.下面我们就来详细介绍一下如何在windows操作系统上安装解压班的MySQL. 1.下载解压版MySQL,地址:http://downloads.mys ...

  3. redux学习笔记

    中文api:http://cn.redux.js.org/docs/react-redux/troubleshooting.html 3.6 Reducer Store 收到 Action 以后,必须 ...

  4. cookie和session可能需要知道的知识

    做Android程序员,了解服务器的知识是相当重要的,比如cookie和session. 首先介绍一点背景知识,我们知道HTTP的连接是无状态的,HTTPS只是增加了安全,有了SSL证书来验证,作为服 ...

  5. 二、 What's Maven,How to learning?

    1. 哈哈,什么是Maevn, ←_←|| ?我怎么知道,来看看官方解释, Apache Maven is a software project management and comprehensio ...

  6. struts2的单文件下载

    一. 导入两个jar包 commons-fileupload-1.3.1.jar commons-io-2.4.jar 二.编写请求上传jsp <h1>文件列表--单文件</h1&g ...

  7. 开发一个完整的JavaScript组件

    作为一名开发者,大家应该都知道在浏览器中存在一些内置的控件:Alert,Confirm等,但是这些控件通常根据浏览器产商的不同而形态各异,视觉效果往往达不到UI设计师的要求.更重要的是,这类内置控件的 ...

  8. IOS GCD 的理解

    GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式. 在Mac OS X 10.6和IOS 4.0之后开 ...

  9. 【笔记】mongodb启动不了:child process failed, exited with error number 100

    今天在启动mongodb的时候,发现起不来,报错:child process failed, exited with error number 100然后先去/var/log/mongo/mongod ...

  10. MFC设置对话框透明背景

    在对话框初始化函数OnInitDialog函数中添加如下代码: SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(), ...