这里是另一个解决方案,这是非常简单,不需要你担心手指被移动。如果您将点击作为简单的移动距离,那么如何区分点击和长时间点击。
你可以把更多的智能,这包括移动的距离,但我还没有遇到一个实例,当用户可以在200毫秒移动的距离应该构成一个移动,而不是点击。
setOnTouchListener(new OnTouchListener() {
private static final int MAX_CLICK_DURATION = 200;
private long startClickTime;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
}
case MotionEvent.ACTION_UP: {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
//click event has occurred
}
}
}
return true;
}
});