繁体   English   中英

长按检测按钮,然后按android按钮

[英]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;
        }


    });

编辑

我没有使用OnLongClickListenerOnClickListener

我想执行的其他动作MotionEvent.ACTION_UP所以我试图用解决我的问题setOnTouchListener在这种情况下,

您可以通过官方文档获取长按的持续时间( getLongPressTimeOut ),以前是1000毫秒,现在是500毫秒...可以更改。 这就是为什么您需要超时。

然后,在ACTION_DOWN上,您可以计算ms ...如果ms >= 500 (如果当前为500ms),则为LongPress。 但是,就像Marios所说的那样,使用OnLongClickListenerOnClickListener

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM