package com.android.lib.map.osm.helpers;
import android.content.Context;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.ScaleGestureDetector.SimpleOnScaleGestureListener;
public class ScaleGestureHelper {
private ScaleGestureDetector mScaleGestureDetector;
private IScaleGestureListener mListener;
public ScaleGestureHelper(Context context, IScaleGestureListener listener) {
mListener = listener;
mScaleGestureDetector = new ScaleGestureDetector(context, new MySimpleOnScaleGestureListener());
}
public class MySimpleOnScaleGestureListener extends SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
if (mListener != null)
mListener.onScale(detector.getCurrentSpan());
return true;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
super.onScaleEnd(detector);
if (mListener != null)
mListener.onScaleEnd();
}
}
public boolean onTouchEvent(MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return mScaleGestureDetector.isInProgress();
}
public interface IScaleGestureListener {
public void onScale(float distance);
public void onScaleEnd();
}
}