1. 程式人生 > >Android Google Map V2,提供MapFragment,可以與使用Fragment一樣,使用Google Map了

Android Google Map V2,提供MapFragment,可以與使用Fragment一樣,使用Google Map了

當前LBS的應用越來越火爆,LBS的應用開發就離不開Google Map。Google Map API大家一定也很熟悉,在PC瀏覽器版本上,Google Map API已經到了V3版本了。
不過在android平臺上,Google 今年12月份推出了V2版本,其最大的特點是提供了MapFragment物件,開發著可以將Map像一個普通的Fragment一樣,嵌入到自己的App中。

使用過V1版本的Google Map android API的同學都知道,V1版本android要在介面中顯示Map,需要繼承自MapActivity,就是說得用Google提供的Activity才能用其Map,不能在自己的Activity中使用。
這種方式最大的一個弊端是,你無法在多Tab頁或嚮導的應用中顯示Map,如微博的多個tab頁,不能在其中一個Tab頁顯示Map,因為Tab頁對應的是一個Fragment,而Map是一個Activity。這種API方式就只能開發最簡單的Map程式:將Map顯示出來,介面非常單調。
關於多Tab頁可以參考這個文章《

Android實現多Tab頁應用》,關於嚮導可以參考這個文章《Android嚮導框架的一種實現》。

V2版本的MapFragment就很大程度地解除了之前V1版本呢對開發者的束縛。MapFragment是Fragment的一個子類,注意是android.app.Fragment,不是android.support.v4.app.Fragment,這兩個Fragment應用層面對開發者沒有區別,只是android.app.Fragment在新的API包中,要求最低的API level是13,這就意味著要使用MapFragment,一些低版本的裝置就沒法支援了。

這裡我再介紹一下,如何將Map整合到嚮導框架中。

整合到嚮導框架的操作很簡單,前提是你已經根據《Android嚮導框架的一種實現》裡面的說明,搭建好了嚮導框架。
那麼,只需要將你要展示Map的嚮導頁的layout檔案,寫成如下即可:
<?xml version=“1.0” encoding=“utf-8”?>
<fragment xmlns:android=“http://schemas.android.com/apk/res/android”
android:id=“@+id/map”
android:layout_width=“match_parent”
android:layout_height=“match_parent”


android:name=“com.google.android.gms.maps.MapFragment”/>

然後,其他事情就交給嚮導框架了。
執行效果圖:

有一個問題就是嚮導的按鈕覆蓋到了地圖上面,有興趣的同學可以研究一下原因。