Android中的onTouch()事件如何区分单击事件和滑动事件



private boolean isDown = false;
 private float x1 = 0;
 private float x2 = 0;
 private float y1 = 0;
 private float y2 = 0;

 @Override
 public boolean onTouch(View v, MotionEvent event) {
  // TODO Auto-generated method stub

  switch (event.getAction()) {
  case MotionEvent.ACTION_DOWN:
   x1 = event.getX();
   y1 = event.getY();
   isDown = true;
   break;
  case MotionEvent.ACTION_UP:
   isDown = false;
   break;
  case MotionEvent.ACTION_MOVE:
   x2 = event.getX();
   y2 = event.getY();
   break;

  default:
   break;
  }

  switch (v.getId()) {
  case R.id.button_say:
   if (event.getAction() == MotionEvent.ACTION_DOWN) {
    StartTalk();
    StopAudio();
    // voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on1);
   } else if (event.getAction() == MotionEvent.ACTION_UP) {
    StopTalk();
    StartAudio();
    // voiceChangeBtn.setImageResource(R.drawable.ptz_microphone_on);
   }
   break;
  case R.id.ipcamclient_whole_view:

   dismissAllPopupwindow();
   break;

  case R.id.camera_flip_viewPager:
   if (Math.abs((x1 - x2)) < 25 && Math.abs((y1 - y2)) < 25) {
    if (isLandScreem && !isDown) {
     dismissAllPopupwindow();
     showBottom();
    } else if (!isLandScreem && !isDown) {
     dismissAllPopupwindow();
    }
   }
   break;

  default:
   break;
  }
  return false;
 }

猜你喜欢

转载自blog.csdn.net/tj_shenzhendaxue/article/details/37815129