安卓系统是否有适用于拖拽手势识别的Pan手势识别器?

6

我正在将我的IOS应用程序复制到Android,该应用程序大量使用Pan手势识别器,但我找不到类似的手势识别器。是否有这样的东西?

任何指导都将不胜感激,谢谢。

2个回答

6

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

2
如何将平移手势添加到特定视图?在我的情况下是相对布局。 - jose920405

5

我认为你需要的是GestureDetector。虽然我不太熟悉iOS的Pan Gesture Recognizer,但我认为它在Android中的工作方式并不完全相同。请参阅开发人员指南主题使用触摸手势以获取有关如何使用该类的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接