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 件のコメント :
コメントを投稿