有人可以通过最佳方式指导我吗?我想创建一个扩展OnTouchListener
的接口。而不是一个名为onTouch(View view, MotionEvent e)
的meathod我想要3个meathods; onPress()
onMove()
和onRelease()
。当您按下屏幕时会调用onPress
meathod,当您在屏幕上移动手指时会调用onMove
。释放手指时会调用onRelease
。欢迎所有相关的答案。
答案 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 e1
和MotionEvent e2
)测量初始触摸(按下)和最终触摸(释放) )并在此基础上你做你的工作。还在 x 和 y 轴上提供velocity
MotionEvent
,测量屏幕上施加的压力等。这将缩短您编写时间的时间。你要做的整个界面。
答案 2 :(得分:1)
我可能基本上会做CaspNZ发布的内容,唯一的区别是在这种情况下你不应该扩展OnTouchListener
。实现接口意味着您必须为所有方法提供实现,因此在这种情况下onTouch
除了您正在创建的三个之外,这是多余的。当然,如果您最终还需要onTouch
,那么除了OnTouchListener
之外,您始终可以实施YourTouchListener
。