【AndroidのViewを制する】 ZoomControlsを使いこなす
Androidには拡大ボタンと縮小ボタンを表示するZoomControlsというViewが存在します。
あくまでも拡大ボタンと縮小ボタンを表示するだけであり、拡大率や縮小率は自前で実装しないといけません。
ZoomControlsとは
ZoomControlsはLinearLayoutを継承しています。また、子Viewとして2つのZoomButtonが存在しています。
2つのZoomButtonはそれぞれズームインボタンとズームアウトボタンとして使用されています。
ZoomControls#setIsZoomInEnabledとZoomControls#setIsZoomOutEnabled
ZoomControls#setIsZoomInEnabledはズームインボタンの無効有効を設定するメソッドです。ZoomControls#setIsZoomOutEnabledはズームアウトボタンの無効有効を設定するメソッドです。
ZoomControls zoomControls = new ZoomControls(this); // ズームインボタンを無効化する。 zoomControls.setIsZoomInEnabled(false); // ズームアウトボタンを無効化する。 zoomControls.setIsZoomOutEnabled(false);
ZoomControls#setOnZoomInClickListenerとZoomControls#setOnZoomOutClickListener
ZoomControls#setOnZoomInClickListenerはズームインボタンをクリックした時に呼ばれるコールバックインターフェースを設定するメソッドです。ZoomControls#setOnZoomOutClickListenerはズームアウトボタンをクリックした時に呼ばれるコールバックインターフェースを設定するメソッドです。
ZoomControls zoomControls = new ZoomControls(this); // ズームインボタンをクリックした時に呼ばれるコールバックインターフェースを設定する zoomControls.setOnZoomInClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("you", "onClick: in"); } }); // ズームアウトボタンをクリックした時に呼ばれるコールバックインターフェースを設定する zoomControls.setOnZoomOutClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("you", "onClick: out"); } });
ZoomControls#setZoomSpeed
ZoomControls#setZoomSpeedはロングクリック時にクリックイベントを発生させる間隔をミリ秒で指定する。ZoomControls zoomControls = new ZoomControls(this); // 1秒間隔でクリックイベントを発生させる。 zoomControls.setZoomSpeed(1000);