我正在将大量使用 Pan Gesture Recognizer 的 IOS 应用程序复制到 Android,但我找不到类似的手势识别器。有这种事吗?
感谢任何方向谢谢
我正在将大量使用 Pan Gesture Recognizer 的 IOS 应用程序复制到 Android,但我找不到类似的手势识别器。有这种事吗?
感谢任何方向谢谢
我想你要找的是GestureDetector
. 我对 iOS 的 Pan Gesture Recognizer 不是很熟悉,但我认为它在 Android 中的工作方式并不完全相同。有关如何使用该类的信息,请参阅开发人员指南主题使用触摸手势。
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 方法中,只需将所有调用转发到检测器.onTouch,如下所示:
@Override public boolean onTouchEvent(MotionEvent event) { detector.onTouchEvent(event); return true; }