我想开始时先按下一个按钮,开始和结束当它被释放(基本上我想衡量多久按钮时)的定时器。 我将使用System.nanoTime()方法,在这两个时间,然后减去最后一个初始数目以获取在按钮被按下经过的时间的测量。
(如果您对使用除nanoTime以外的东西()或测量按钮多长时间按住的一些其他的方式有什么建议,我是开放给那些为好。)
谢谢! 安迪
我想开始时先按下一个按钮,开始和结束当它被释放(基本上我想衡量多久按钮时)的定时器。 我将使用System.nanoTime()方法,在这两个时间,然后减去最后一个初始数目以获取在按钮被按下经过的时间的测量。
(如果您对使用除nanoTime以外的东西()或测量按钮多长时间按住的一些其他的方式有什么建议,我是开放给那些为好。)
谢谢! 安迪
使用OnTouchListener代替OnClickListener的:
// this goes somewhere in your class:
long lastDown;
long lastDuration;
...
// this goes wherever you setup your button listener:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
lastDown = System.currentTimeMillis();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
lastDuration = System.currentTimeMillis() - lastDown;
}
return true;
}
});
这肯定会工作:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
increaseSize();
} else if (event.getAction() == MotionEvent.ACTION_UP) {
resetSize();
}
return true;
}
});
计算型差分。