下面列出了android.view.GestureDetector#OnGestureListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* When the PreviewStatusListener changes, listeners need to be
* set on the following app ui elements:
* {@link com.android.camera.ui.PreviewOverlay},
* {@link com.android.camera.ui.BottomBar},
* {@link com.android.camera.ui.IndicatorIconController}.
*/
private void onPreviewListenerChanged()
{
// Set a listener for recognizing preview gestures.
GestureDetector.OnGestureListener gestureListener
= mPreviewStatusListener.getGestureListener();
if (gestureListener != null)
{
mPreviewOverlay.setGestureListener(gestureListener);
}
View.OnTouchListener touchListener = mPreviewStatusListener.getTouchListener();
if (touchListener != null)
{
mPreviewOverlay.setTouchListener(touchListener);
}
mTextureViewHelper.setAutoAdjustTransform(
mPreviewStatusListener.shouldAutoAdjustTransformMatrixOnLayout());
}
@Override
protected GestureDetector.OnGestureListener getGestureListener() {
return new ImageViewTouch.GestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
mUserScaled = true;
float scale = getScale();
float targetScale = onDoubleTapPost(scale, getMaxScale(), getMinScale());
targetScale = Math.min(getMaxScale(), Math.max(targetScale, getMinScale()));
zoomTo(targetScale, e.getX(), e.getY(), (long) mDefaultAnimationDuration);
if (null != mDoubleTapListener) {
mDoubleTapListener.onDoubleTap();
}
return false;
}
};
}
/**
* Each module can pass in their own gesture listener through App UI. When a gesture
* is detected, the {@link GestureDetector.OnGestureListener} will be notified of
* the gesture.
*
* @param gestureListener a listener from a module that defines how to handle gestures
*/
public void setGestureListener(GestureDetector.OnGestureListener gestureListener)
{
if (gestureListener != null)
{
mGestureDetector = new GestureDetector(getContext(), gestureListener);
}
}
@Override
public GestureDetector.OnGestureListener getGestureListener()
{
return new GestureDetector.SimpleOnGestureListener()
{
@Override
public boolean onSingleTapUp(MotionEvent ev)
{
final Point tapPoint = new Point((int) ev.getX(), (int) ev.getY());
mStateMachine.processEvent(new EventTapOnPreview(tapPoint));
return true;
}
};
}
@TargetApi(Build.VERSION_CODES.KITKAT)
private ZGestrueDetector(Context context, OnRotationGestureListener rotationListener, OnScaleGestureListener scaleListener, GestureDetector.OnGestureListener moveListener) {
this.context = context;
this.rotationListener = rotationListener;
this.scaleListener = scaleListener;
this.moveListener = moveListener;
if (moveListener!=null)
moveGesture =new GestureDetectorCompat(context,zMoveListener);
if (moveListener!=null)
scaleGesture =new ScaleGestureDetector(context,zScaleListener);
if (rotationListener!=null)
ratotionGesture =new RotationGestureDetector(zRotationListener);
}
@Override
public GestureDetector.OnGestureListener getGestureListener()
{
return mPreviewGestureListener;
}
@Override
public GestureDetector.OnGestureListener getGestureListener()
{
return mPreviewGestureListener;
}
protected GestureDetector.OnGestureListener createGestureListener() {
return new PlayerGestureListener();
}
protected GestureDetector.OnGestureListener getGestureListener() {
return new GestureListener();
}
/**
* The preview status listener needs to provide an
* {@link android.view.GestureDetector.OnGestureListener} in order to listen
* to the touch events that happen on preview.
*
* @return a listener that listens to touch events
*/
public GestureDetector.OnGestureListener getGestureListener();
/**
* Set a {@link android.view.GestureDetector.OnGestureListener
* GestureDetector.OnGestureListener} to receive gestures performed on this
* view. Can be used to implement additional
* functionality via touch gestures or override built-in gestures.
*
* @param listener The {@link
* android.view.GestureDetector.OnGestureListener
* GestureDetector.OnGestureListener} which will receive
* gestures.
*/
public void setExtGestureListener(GestureDetector.OnGestureListener listener) {
mExtGestureListener = listener;
}