【AndroidのViewを制する】 ZoomControlsを使いこなす

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

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);