保护View不受连续触摸事件的影响

时间:2014-10-28 14:36:00

标签: android android-camera android-event

我正在构建像藤蔓这样的相机应用程序,只要您将手指放在屏幕上,就可以录制视频。

我的问题:如果有人在屏幕上快速连续拍摄,相机逻辑会收到太多事件。它不断尝试写文件,关闭录音机,打开新连接等等。

当它在太短的时间内不得不经常开始和停止录制时,相机似乎非常脆弱。

我尝试设置一个标志,以防止新的动作事件在仍在忙于上一次操作时访问摄像机。这很难看,但它确实有效。主要的问题是,运动事件似乎会在一个接一个之后引发并引发太多事件。

我正在使用动作事件ACTION_UPACTION_DOWN来检测用户是否将手指放在屏幕上或将其释放。

在相机处理准备和发布期间,是否有一种很好的方法可以禁用捕获动作事件?

1 个答案:

答案 0 :(得分:1)

试试这个:

//Class Variable
Timer timer;

 public boolean onTouch(View view, MotionEvent event) {
        // Check event type

        switch (event.getAction()) {

        // Finger down
        case MotionEvent.ACTION_DOWN:
              timer = new Timer();
              timer.schedule(recordingfunc(),1000);
                break;
        case MotionEvent.ACTION_UP:
           if(timer!=null){  
                  timer.cancel();
}
                      break;
     }
}