mucchinのAndroid戦記

MapViewへのズームコントロール(ZoomControl)の設定方法

MapViewにズームボタンを設置する簡単な方法は?

MapViewに、地図のズームをする為のズームコントローラを配置する方法は簡単です。
二つ紹介します。
まず一つ目は、敢えて非推奨のやり方を説明します。


MapView map = (MapView)findViewById(R.id.mapview);

ZoomControls z = (ZoomControls)map.getZoomControls();※
ViewGroup.LayoutParams param =
   new ViewGroup.LayoutParams(
     ViewGroup.LayoutParams.FILL_PARENT,
     ViewGroup.LayoutParams.FILL_PARENT);
z.setLayoutParams(param);
z.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
map.addView(z);


これで、MapViewの下の方に、地図のズームボタンが設置されます。
サンプルコード内の※印を付けたメソッドのMapView.getZoomControls()は、非推奨(deprecated)です。
次は、推奨の方法です。
上に比べると、コードがスッキリしまくります。


MapView map = (MapView)findViewById(R.id.mapview);
map.setBuiltInZoomControls(true);


スポンサーリンク




これだけです。
最初に紹介した非推奨な方法で作った場合と、全く同じようにズームボタンが表示されます。

地図上をタップすると・・・

このようにズームボタンが現れて、「+」を押せば拡大、「―」を押せば縮小します。


ズームボタンの配置場所を変えたいとか、色んなカスタマイズをしたい場合は、もっとコードを追加しないといけないと思いますが、ここではこれまでとします。


ちなみに、非推奨であるMapView.getZoomControls()をAPIリファレンスで見てみると下記のように記述されています。

赤枠部分に、推奨のAPIが記述されているので、今回ご紹介した方法がわかりました。
もし、書いているコードで、「非推奨(deprecated)」と警告されたら、是非APIリファレンスをご覧ください。