在Android中创建界面

时间:2011-07-29 01:44:13

标签: java android interface ontouchlistener

有人可以通过最佳方式指导我吗?我想创建一个扩展OnTouchListener的接口。而不是一个名为onTouch(View view, MotionEvent e)的meathod我想要3个meathods; onPress() onMove()onRelease()。当您按下屏幕时会调用onPress meathod,当您在屏幕上移动手指时会调用onMove。释放手指时会调用onRelease。欢迎所有相关的答案。

3 个答案:

答案 0 :(得分:3)

您可以通过扩展YourTouchListener课程并在此课程中添加View方法来使用duffymo提供的setYourTouchListener(YourTouchListener listener)

然后,您将覆盖onTouchEvent(MotionEvent event)并调用侦听器的相关方法。像这样:

public boolean onTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            listener.onPress(this, event);
            break;
        case MotionEvent.ACTION_MOVE:
            listener.onMove(this, event);
            break;
        case MotionEvent.ACTION_UP:
            listener.onRelease(this, event);
            break;
    }
    //this means that you have "used" this event. The ViewGroup will direct all further associated events straight here.
    return true;
}

答案 1 :(得分:1)

您可以使用GestureListener并使用onFling(...)方法,这样您就可以(MotionEvent e1MotionEvent e2)测量初始触摸(按下)和最终触摸(释放) )并在此基础上你做你的工作。还在 x y 轴上提供velocity MotionEvent,测量屏幕上施加的压力等。这将缩短您编写时间的时间。你要做的整个界面。

答案 2 :(得分:1)

我可能基本上会做CaspNZ发布的内容,唯一的区别是在这种情况下你不应该扩展OnTouchListener。实现接口意味着您必须为所有方法提供实现,因此在这种情况下onTouch除了您正在创建的三个之外,这是多余的。当然,如果您最终还需要onTouch,那么除了OnTouchListener之外,您始终可以实施YourTouchListener