在我的应用程序中,单击并按住一个特定的图像按钮时,我必须能够计算出按住图像按钮的时间.任何人都可以通过提供一些简单的指导或示例代码来帮助我.我真的被困在这里.是否有针对此特定要求的特定事件侦听器.我正在专门为触摸屏手机编写此应用.
最佳答案
您要使用的是:
OnTouchListener touchListener = new OnTouchListener(){
@Override
public boolean onTouch(View v,MotionEvent event) {
int action = event.getAction();
Log.d(LOG_TAG,"Action is: " + action);
switch (action){
case MotionEvent.ACTION_DOWN:
timeAtDown = SystemClock.elapsedRealtime();
break;
case MotionEvent.ACTION_UP:
long durationOfTouch = SystemClock.elapsedRealtime() - timeAtDown;
Log.d(LOG_TAG,"Touch event lasted " + durationOfTouch + " milliseconds.");
break;
}
return false;
}
};
button.setOnTouchListener(touchListener);
timeAtDown是一个很长的定义为类字段,因为它需要在两次调用touchListener之前保持不变.使用此功能,您也不会干扰按钮的正常操作.您可以设置一个点击监听器,使其正常运行.注意:在触摸事件的动作从DOWN(或MOVE)变为UP之前,不会执行“单击”操作.