[英]Detect button long press and press android button
我有一个按钮,并且我试图在一个按钮中触发两个动作。 长按按钮即可调用方法takeVideo
。 然后按一下按钮,我想调用imageCapture
方法。
下面的代码可以长时间按下。 但我无法检测到按下按钮仅调用imageCapture
方法。
takePhotoBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
long down;
int action = motionEvent.getAction();
if (action == MotionEvent.ACTION_BUTTON_PRESS) {
imageCapture();
return true;
}
if (action == MotionEvent.ACTION_DOWN) {
takeVideo();
timer.start();
return true;
} else if (action == MotionEvent.ACTION_UP) {
takeVideo();
timer.cancel();
return true;
}
return false;
}
});
编辑
我没有使用OnLongClickListener
和OnClickListener
。
我想执行的其他动作MotionEvent.ACTION_UP
所以我试图用解决我的问题setOnTouchListener
在这种情况下,
您可以通过官方文档获取长按的持续时间( getLongPressTimeOut
),以前是1000毫秒,现在是500毫秒...可以更改。 这就是为什么您需要超时。
然后,在ACTION_DOWN上,您可以计算ms ...如果ms >= 500
(如果当前为500ms),则为LongPress。 但是,就像Marios所说的那样,使用OnLongClickListener和OnClickListener 。
你为什么不使用
onLongClickListener( http://developer.android.com/reference/android/view/View.OnLongClickListener.html )
和
OnClickListener( http://developer.android.com/reference/android/view/View.OnClickListener.html )
setOnLongClickListener
可以用于此目的。
takePhotoBtn.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return true;
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.