我正在复制我的IOS应用程序,它大量使用Pan Gesture识别器到Android,我找不到相似的 手势识别器。有这样的事吗?
任何方向表示赞赏
答案 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; }