Android OnGetureListener和onTouchListner

Android OnGetureListener和onTouchListner,android,Android,我在安卓系统工作。我有一些功能需要在以下方法上完成:- 1. MotionEvent.ACTION_DOWN 2. MotionEvent.ACTION_UP 3. MotionEvent.ACTION_MOVE 我还想对这张图片进行fling() 对于上述要求,我在应用程序中实现了OnTestureListener和onTouchListener,但这些都不能正常工作onTouchListener正在工作,但OnTestureListener不工作。当我将onTouchListnercode

我在安卓系统工作。我有一些功能需要在以下方法上完成:-

1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
我还想对这张图片进行
fling()

对于上述要求,我在应用程序中实现了
OnTestureListener
onTouchListener
,但这些都不能正常工作
onTouchListener
正在工作,但
OnTestureListener
不工作。当我将
onTouchListner
code删除时,则
OnTestureListener
工作正常

所以请建议我该怎么做。我想在我的应用程序中实现这四种方法

1. MotionEvent.ACTION_DOWN
2. MotionEvent.ACTION_UP
3. MotionEvent.ACTION_MOVE
4. onFling

您可以通过在活动中实现OnTestureListener,覆盖以下方法来实现这一点

// For touch 
public boolean onSingleTapUp(MotionEvent event) { return false; }

// For Fling 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    return false;
}
希望这有帮助


编辑1:详细说明:

1> 从活动中实现OnTestureListener

public class MyActivity implements OnGestureListener
2> 创建GestureDetector的实例:

private GestureDetector gestureScanner;
以及在创建时的
onCreate

// Avoid a deprecated constructor 
// (http://developer.android.com/reference/android/view/GestureDetector.html)
gestureScanner = new GestureDetector(this, this);
3> 覆盖以下方法:

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

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
        float velocityY) {
    /* on scroll to the next page in story */

    if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
        // ...
    }
    /* on scroll to the previous page in story */
    else if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
            && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
        // ...
    }

    return false;
}

@Override
public boolean onSingleTapUp(MotionEvent event) {
    return false;
}

编辑2:用于处理移动
覆盖onScroll方法查看详细信息

,正如一位Android开发伙伴的建议一样,他已经追踪到了“刷”或“甩”事件的基本路径。。。编写侦听器或尝试实现OnGetureListener类时,请确保在导入中导入android.view.GestureDetector.OnGetureListener


否则,
OnGesturListener
将使用一个GestureOverlayView的导入,而这似乎不是您想要的。特别是在尝试使用手势应用程序实现手势捕获、导入保存的手势以及在运行时为应用程序创建手势库以进行“预测”时,这些都非常有用用户在后台运行一些奇特的算法,看看谁与用户输入的偏差最小。结果是一系列的位置从操作系统中传来,当用户在平板屏幕上拖动他们短粗的手指时。。。这是一个不同的方法,而不仅仅是试图抓住一个放纵,或长期新闻。这似乎是用户在寻找上面,而不是一些花哨的多按手势捕捉,这种方法使非常简单。这项技术在视频游戏中也非常有用,可能会给任何喜欢开发游戏的人提供一个“后门”。或者在9-5世界中,将支持或管理后门放入移动应用程序中,以对日常用户隐藏一些设置或日志。在这种情况下,你也可以使用上述预期的技术,但是你必须在屏幕上获得一系列的点或位置,这对于任何非数学专业的人或自学成才的开发人员来说都是乏味的。希望我对任何人都有所贡献或帮助。在我学习时,没有人向我提到过这一点,我在读过的几本关于Android的书中也没有发现过这一点。

在下面添加了一些解释,希望能有所帮助。请告诉我如何实现move方法的功能?覆盖onScroll也可以做到这一点(MotionEvent e1、MotionEvent e2、float distanceX、float distanceY)方法。请查看上面编辑的ans中链接的详细信息。