Android開發筆記-縮放Google地圖

※注意:本文已過時,新版API請參考官方網站

內容說明:在Google地圖頁面上進行縮放

資料來源:Google!Android 2手機應用程式設計入門第三版

Google地圖頁面的建立方式,可參考「使用Google地圖」,本篇要在原始的地圖上加入縮放的功能。這項功能有分新舊的版本,若要支援Android 1.5版以前的機種,必需加入舊版的程式碼。以下先說明新版的方法。

After Android 1.5

參考「使用Google地圖>控制地圖」的程式碼,只要加入一行指令即可:

map.setBuiltInZoomControls(true);    //加入縮放控制

Before Android 1.5

早期的版本就沒這麼容易了。首先參考下面的程式碼修改res/layout/main.xml:

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<com.google.android.maps.MapView android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:apiKey="0IngGLLT7wUkbXwtNMFv4NmANPStXjD06uMILxg"
    android:clickable="true"
    />
<linearlayout android:id="@+id/zoom"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    />
</relativelayout>

原本的 LinearLayout 改成 RelativeLayout;原本LinearLayout的版面配置是由上而下,而RelativeLayout則是根據元件設定的屬性來決定配置的方式。MapView維持不動,並且加入一個新的LinearLayout物件,用來放置縮放圖示;alignParentBottom表示向下對齊,而centerHorizontal則表示水平置中。

接下來修改Java檔案。先在最上面宣告ViewGroup的縮放物件:

private ViewGroup zoom;                  //宣告縮放控制物件

接著到onCreate()裡,將縮放控制物件加入到LinearLayout物件中。

zoom = (ViewGroup) findViewById(R.id.zoom);  //載入LinearLayout
    zoom.addView(map.getZoomControls());    //加入縮放控制到LinearLayout(before 1.5)

當我們要支援新舊版本的時候,把兩種都加進去就可以了。