Pan Gesture识别器适用于Android?

时间:2013-07-03 16:00:01

标签: android ios cocoa-touch uigesturerecognizer

我正在复制我的IOS应用程序,它大量使用Pan Gesture识别器到Android,我找不到相似的 手势识别器。有这样的事吗?

任何方向表示赞赏

2 个答案:

答案 0 :(得分:4)

我认为你要找的是GestureDetector。我对iOS的Pan Gesture Recognizer并不是很熟悉,但我认为它在Android中的工作方式并不完全相同。有关如何使用该类的信息,请参阅开发人员指南主题Using Touch Gestures

答案 1 :(得分:4)

Android开箱即用,有两个识别手势的类。一个是GestureDetector,另一个是ScaleGestureDetector。

与ios不同,基本手势检测器框架是有限的 - 您无法指定依赖关系,进行冲突解决或通过在ios的UiGestureRecognizer类中指定触摸点等来配置它们。

要回答您的问题,可以使用GestureDetector检测平移。这是一个片段:

PanGestureListener listener = new PanGestureListener();
GestureDetector detector = new GestureDetector(context, listener);

class PanGestureListener extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onScroll(MotionEvent e1, 
                            MotionEvent e2, 
                            float distanceX, 
                            float distanceY) {

        //YOUR "pan handler"
        return true;
    }

}

现在在onTouch方法中,只需将所有调用转发到detector.onTouch,如下所示:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        detector.onTouchEvent(event);
        return true;
    }