GoogleMapのZoomButtonのレイアウト変更

171 views
Skip to first unread message

小林誠

unread,
Nov 24, 2009, 8:31:48 AM11/24/09
to android-g...@googlegroups.com
はじめまして、小林と申します。
まだ、Androidアプリ開発の初心者で、検討違いな質問かもしれませんが、
よろしくお願いいたします。

現在、GoogleMapのAPIを利用したアプリケーションを考えているのですが、
日本Androidの会に記述されているサンプルアプリケーションに記載されている
MapViewのgetZoomControlsメソッドが非推奨となっているため、ソースを変えたい
のですがなかなかうまくいきません。


やりたいこと:
 ズームボタンを右上に表示したい。


非推奨のメソッドを利用した形では、以下のような記述をして、ズームボタンを右上に
設定できるのは確認できているのですが、ズームボタンが表示しているタイミングでは
マップが移動できないなどの問題があります。
ZoomControls zoomCtrl = (ZoomControls) mapView.getZoomControls();
zoomCtrl.setLayoutParams(new
ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
zoomCtrl.setGravity(Gravity.TOP + Gravity.RIGHT);
zoomCtrl.setPadding(0, 40, 0, 0);


変更後、以下のようにしてみましたが、IOエラーが出て止まってしまいます。
mapView.setBuiltInZoomControls(true);
ZoomButtonsController zoomButton = mapView.getZoomButtonsController();
ZoomControls zoomCtrl = (ZoomControls)zoomButton.getZoomControls();
zoomCtrl.setLayoutParams(new
ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
zoomCtrl.setGravity(Gravity.TOP + Gravity.RIGHT);
zoomCtrl.setPadding(0, 40, 0, 0);


解決されて方がいらっしゃいましたら、ご教授願います。

すみませんが、よろしくお願いいたします。

Satoshi Ogata

unread,
Nov 24, 2009, 8:40:20 PM11/24/09
to android-g...@googlegroups.com
小林さん、はじめまして。
緒方です。

> ZoomControls zoomCtrl = (ZoomControls) mapView.getZoomControls();

上記の代わりに以下を使えば良いかと思います。

mapView.setBuiltInZoomControls(true);


2009/11/24 小林誠 <m.kobay...@gmail.com>:

小林誠

unread,
Nov 24, 2009, 11:00:06 PM11/24/09
to android-g...@googlegroups.com
緒方さん

小林です。
僕の記述がわるかったですね・・・

mapView.setBuiltInZoomControls(true);
をはすでに、設定しています。

ズームボタンの場所が、画面下の真ん中に固定されてしまって
いるので、それを移動したいというのが、質問の意図です。

よろしくお願いいたします。


2009年11月25日10:40 Satoshi Ogata <satos...@gmail.com>:
--
/*----------------------------------------*/
小林 誠
m.kobay...@gmail.com
/*----------------------------------------*/

Sue

unread,
Nov 25, 2009, 4:20:06 AM11/25/09
to android-g...@googlegroups.com
小林さん

こんにちは、Sueといいます。
こんな感じでどうでしょうか?

mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
ViewGroup container = mapView.getZoomButtonsController().getContainer();
LayoutParams params = container.getLayoutParams();
params.height = LayoutParams.FILL_PARENT;

ZoomControls zoomCtrl = (ZoomControls) mapView
.getZoomButtonsController().getZoomControls();
LayoutParams paramsCtrl = zoomCtrl.getLayoutParams();
paramsCtrl.width = LayoutParams.FILL_PARENT;
zoomCtrl.setGravity(Gravity.RIGHT);
zoomCtrl.setPadding(0, 50, 0, 0);

2009年11月24日22:31 小林誠 <m.kobay...@gmail.com>:

小林誠

unread,
Nov 25, 2009, 8:05:53 AM11/25/09
to android-g...@googlegroups.com
Sueさん

小林です。
やりたいことができました。

大変勉強になりました。ありがとうございました。

以上です。

2009年11月25日18:20 Sue <suech...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages