import android.os.Bundle; import android.util.Log; import android.widget.ZoomButtonsController.OnZoomListener; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; public class MapDemoActivity extends MapActivity implements OnZoomListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); createMapView(); } private void createMapView() { mapView = (MapView) findViewById(R.id.mapview); // デフォルトのズームコントローラーを使用する mapView.setBuiltInZoomControls(true); // ズームコントローラーのイベントを処理するリスナーを設定する mapView.getZoomButtonsController().setOnZoomListener(this); } @Override public void onZoom(boolean zoomIn) { if (zoomIn ? mapView.getController().zoomIn() : mapView.getController() .zoomOut()); Log.i(LOGTAG, "onZoom():zoomIn=" + zoomIn); // タスクを実行する executeTask(); } @Override public void onVisibilityChanged(boolean visible) { }
onZoomListener を実装すると、必ず、onZoom() とonVisibilityChanged() をオーバーライドしなければならない。
onZoom() は、正に、ズームイン/ズームアウト時に呼ばれるメソッドであり、onVisibilityChanged() は、デフォルトのズームコントローラーの表示/非表示が切り替わったときに呼ばれるメソッド。特に行いたい処理が無くても、これら2つのメソッドは記述する必要がある。
注意点としては、onZoom() の処理をオーバーライドするので、自分でzoomIn() やzoomOut() を呼ばなくてはいけなくなること。zoomIn()/zoomOut() をコールしないと、マップがズームイン/ズームアウトしなくなる。
0 件のコメント :
コメントを投稿