@Override
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

    final float xDistance = Math.abs(e1.getX() - e2.getX());
    final float yDistance = Math.abs(e1.getY() - e2.getY());

    if (xDistance > this.swipe_Max_Distance || yDistance > this.swipe_Max_Distance) return false;

    velocityX = Math.abs(velocityX);
    velocityY = Math.abs(velocityY);
    boolean result = false;

    if (velocityX > this.swipe_Min_Velocity && xDistance > this.swipe_Min_Distance) {
      if (e1.getX() > e2.getX()) // right to left
      this.listener.onSwipe(SWIPE_LEFT);
      else this.listener.onSwipe(SWIPE_RIGHT);

      result = true;
    } else if (velocityY > this.swipe_Min_Velocity && yDistance > this.swipe_Min_Distance) {
      if (e1.getY() > e2.getY()) // bottom to up
      this.listener.onSwipe(SWIPE_UP);
      else this.listener.onSwipe(SWIPE_DOWN);

      result = true;
    }

    return result;
  }
Beispiel #2
0
  // Touch events
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    final int touchDevId = event.getDeviceId();
    final int pointerCount = event.getPointerCount();
    // touchId, pointerId, action, x, y, pressure
    int actionPointerIndex =
        (event.getAction() & MotionEvent.ACTION_POINTER_ID_MASK)
            >> MotionEvent.ACTION_POINTER_ID_SHIFT; /* API 8: event.getActionIndex(); */
    int pointerFingerId = event.getPointerId(actionPointerIndex);
    int action =
        (event.getAction() & MotionEvent.ACTION_MASK); /* API 8: event.getActionMasked(); */

    float x = event.getX(actionPointerIndex) / mWidth;
    float y = event.getY(actionPointerIndex) / mHeight;
    float p = event.getPressure(actionPointerIndex);

    if (action == MotionEvent.ACTION_MOVE && pointerCount > 1) {
      // TODO send motion to every pointer if its position has
      // changed since prev event.
      for (int i = 0; i < pointerCount; i++) {
        pointerFingerId = event.getPointerId(i);
        x = event.getX(i) / mWidth;
        y = event.getY(i) / mHeight;
        p = event.getPressure(i);
        SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
      }
    } else {
      SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
    }
    return true;
  }
Beispiel #3
0
  @Override
  public void screenTouched(MotionEvent aEvent) {
    super.screenTouched(aEvent);

    if (!onScreenInput) {
      if (!touchedOverActionBar(aEvent.getY())) {
        uiFullscreen = true;
        setupDisplay();
      }
    } else if (toggleFullscreenOverActionBar(aEvent.getY())) {
      setupDisplay();
    }
  }
Beispiel #4
0
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    switch (event.getActionMasked()) {
      case MotionEvent.ACTION_DOWN:
        path.reset();
        path.moveTo(event.getX(), event.getY());
        break;
      case MotionEvent.ACTION_MOVE:
        path.lineTo(event.getX(), event.getY());
        break;
    }

    return super.onTouchEvent(event);
  }
Beispiel #5
0
    @Override
    public boolean onTouchEvent(MotionEvent event) {
      int action = event.getAction();
      long time = event.getEventTime();

      switch (action & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
          handleMouseDown(host, event.getPointerId(0), event.getX(), event.getY(), time);
          return true;

        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
          handleMouseUp(host, event.getPointerId(0), event.getX(), event.getY(), time);
          return true;

        case MotionEvent.ACTION_MOVE:
          {
            int n = event.getPointerCount();
            for (int i = 0; i < n; ++i)
              handleMouseDrag(host, event.getPointerId(i), event.getX(i), event.getY(i), time);

            return true;
          }

        case MotionEvent.ACTION_POINTER_UP:
          {
            int i =
                (action & MotionEvent.ACTION_POINTER_INDEX_MASK)
                    >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
            handleMouseUp(host, event.getPointerId(i), event.getX(i), event.getY(i), time);
            return true;
          }

        case MotionEvent.ACTION_POINTER_DOWN:
          {
            int i =
                (action & MotionEvent.ACTION_POINTER_INDEX_MASK)
                    >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
            handleMouseDown(host, event.getPointerId(i), event.getX(i), event.getY(i), time);
            return true;
          }

        default:
          break;
      }

      return false;
    }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    int touchX = (int) event.getRawX();
    int touchY = (int) event.getRawY();
    int touchX1 = (int) event.getX();
    int touchY1 = (int) event.getY();
    /*getX()是表示view相对于自身左上角的x坐标,
    而getRawX()是表示相对于屏幕左上角的x坐标值
    (注意:这个屏幕左上角是手机屏幕左上角,
    不管activity是否有titleBar或是否全屏幕)
     */
    Rect rect = new Rect();
    getGlobalVisibleRect(rect); // 用Rect将控件框起来
    rect.left = rect.right - 40; // 将Rect的范围缩小到图片显示区域,只有点击落在改区域才会删除输入文字

    if (length() > 1) { // 当有文字输入时在进行操作
      if (rect.contains(touchX, touchY)) {

        setCompoundDrawablesWithIntrinsicBounds(null, null, deleteAllDown, null);
      } else {
        setCompoundDrawablesWithIntrinsicBounds(null, null, deleteAllOn, null);
      }

      if (event.getAction() == MotionEvent.ACTION_UP) {
        if (rect.contains(touchX, touchY)) {
          setText(""); // 清除输入的字符串
        }
        setDraw(); // 重绘
      }
    }

    return super.onTouchEvent(event);
  }
 @Override
 public boolean onTouch(View v, MotionEvent event) {
   builder.setLength(0);
   switch (event.getAction()) {
     case MotionEvent.ACTION_DOWN:
       builder.append("down, ");
       break;
     case MotionEvent.ACTION_MOVE:
       builder.append("move, ");
       break;
     case MotionEvent.ACTION_CANCEL:
       builder.append("cancel, ");
       break;
     case MotionEvent.ACTION_UP:
       builder.append("up, ");
       break;
   }
   builder.append(event.getX());
   builder.append(", ");
   builder.append(event.getY());
   String text = builder.toString();
   Log.d("TouchTest", text);
   textView.setText(text);
   return true;
 }
Beispiel #8
0
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
      // Set up the Scroller for a fling
      float scrollTheta =
          vectorToScalarScroll(
              velocityX,
              velocityY,
              e2.getX() - mPieBounds.centerX(),
              e2.getY() - mPieBounds.centerY());
      mScroller.fling(
          0,
          (int) getPieRotation(),
          0,
          (int) scrollTheta / FLING_VELOCITY_DOWNSCALE,
          0,
          0,
          Integer.MIN_VALUE,
          Integer.MAX_VALUE);

      // Start the animator and tell it to animate for the expected duration of the fling.
      if (Build.VERSION.SDK_INT >= 11) {
        mScrollAnimator.setDuration(mScroller.getDuration());
        mScrollAnimator.start();
      }
      return true;
    }
Beispiel #9
0
  public boolean onTouchEvent(MotionEvent e) {
    x = e.getX();
    y = e.getY();

    // 更新を有効にする
    this.invalidate();
    return true;
  }
Beispiel #10
0
  @Override
  public void screenTouched(MotionEvent aEvent) {
    super.screenTouched(aEvent);

    if (toggleFullscreenOverActionBar(aEvent.getY())) {
      setupDisplay();
    }
  }
 /** {@inheritDoc} */
 public boolean onTouch(View view, MotionEvent motionEvent) {
   int action = motionEvent.getAction();
   if (action == MotionEvent.ACTION_MOVE) {
     view.setX(view.getX() + motionEvent.getX() - (view.getWidth() / 2));
     view.setY(view.getY() + motionEvent.getY() - (view.getHeight() / 2));
   }
   return true;
 }
Beispiel #12
0
 /**
  * If the motion event was relative to the view which in ignored view list,return true;
  *
  * @param ev
  * @return
  */
 private boolean isInIgnoredView(MotionEvent ev) {
   Rect rect = new Rect();
   for (View v : ignoredViews) {
     v.getGlobalVisibleRect(rect);
     if (rect.contains((int) ev.getX(), (int) ev.getY())) return true;
   }
   return false;
 }
Beispiel #13
0
 @Override
 public boolean onTrackballEvent(MotionEvent event) {
   // Log.i(logTag, "onTrackballEvent");
   if (trackballEvent(event.getAction(), event.getX(), event.getY())) {
     postUpdate();
   }
   return true;
 }
Beispiel #14
0
  // Touch events
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    /* Ref: http://developer.android.com/training/gestures/multi.html */
    final int touchDevId = event.getDeviceId();
    final int pointerCount = event.getPointerCount();
    int action = event.getActionMasked();
    int pointerFingerId;
    int i = -1;
    float x, y, p;

    switch (action) {
      case MotionEvent.ACTION_MOVE:
        for (i = 0; i < pointerCount; i++) {
          pointerFingerId = event.getPointerId(i);
          x = event.getX(i) / mWidth;
          y = event.getY(i) / mHeight;
          p = event.getPressure(i);
          SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
        }
        break;

      case MotionEvent.ACTION_UP:
      case MotionEvent.ACTION_DOWN:
        // Primary pointer up/down, the index is always zero
        i = 0;
      case MotionEvent.ACTION_POINTER_UP:
      case MotionEvent.ACTION_POINTER_DOWN:
        // Non primary pointer up/down
        if (i == -1) {
          i = event.getActionIndex();
        }

        pointerFingerId = event.getPointerId(i);
        x = event.getX(i) / mWidth;
        y = event.getY(i) / mHeight;
        p = event.getPressure(i);
        SDLActivity.onNativeTouch(touchDevId, pointerFingerId, action, x, y, p);
        break;

      default:
        break;
    }

    return true;
  }
Beispiel #15
0
 // 새로운 볼 생성
 public boolean onTouchEvent(MotionEvent event) {
   if (event.getAction() == MotionEvent.ACTION_DOWN) {
     Ball NewBall = Ball.Create((int) event.getX(), (int) event.getY(), RAD);
     arBall.add(NewBall);
     invalidate();
     return true;
   }
   return false;
 }
Beispiel #16
0
 @Override
 public boolean onTouchEvent(MotionEvent event) {
   int x = (int) event.getX();
   int y = (int) event.getY();
   if (event.getAction() == MotionEvent.ACTION_MOVE) {
     gameManager.onTouchEvent(x, y);
   }
   invalidate();
   return true;
 }
Beispiel #17
0
  /** 分发事件,主要做的是判断点击的是那个item, 以及通过postDelayed来设置响应左右滑动事件 */
  @Override
  public boolean dispatchTouchEvent(MotionEvent event) {
    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        {
          System.out.println("dispatch-->" + "down");
          addVelocityTracker(event);

          // 假如scroller滚动还没有结束,我们直接返回
          if (!scroller.isFinished()) {
            return false;
          }
          downX = (int) event.getX();
          downY = (int) event.getY();

          slidePosition = pointToPosition(downX, downY);

          // 无效的position, 不做任何处理
          if (slidePosition == AdapterView.INVALID_POSITION) {
            return super.dispatchTouchEvent(event);
          }

          // 获取我们点击的item view
          itemView = getChildAt(slidePosition - getFirstVisiblePosition());
          break;
        }
      case MotionEvent.ACTION_MOVE:
        {
          System.out.println("dispatch-->" + "move");
          if (Math.abs(getScrollVelocity()) > SNAP_VELOCITY
              || (Math.abs(event.getX() - downX) > mTouchSlop
                  && Math.abs(event.getY() - downY) < mTouchSlop)) {
            isSlide = true;
          }
          break;
        }
      case MotionEvent.ACTION_UP:
        recycleVelocityTracker();
        break;
    }

    return super.dispatchTouchEvent(event);
  }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
      switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
          handleMouseDown(event.getX(), event.getY(), event.getEventTime());
          return true;
        case MotionEvent.ACTION_MOVE:
          handleMouseDrag(event.getX(), event.getY(), event.getEventTime());
          return true;
        case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
          handleMouseUp(event.getX(), event.getY(), event.getEventTime());
          return true;
        default:
          break;
      }

      return false;
    }
Beispiel #19
0
  // Touch events
  public boolean onTouch(View v, MotionEvent event) {

    int action = event.getAction();
    float x = event.getX();
    float y = event.getY();
    float p = event.getPressure();

    // TODO: Anything else we need to pass?
    SDLActivity.onNativeTouch(action, x, y, p);
    return true;
  }
  private void handleLongPress(MotionEvent event) {
    QuranAyah result = getAyahFromCoordinates(event.getX(), event.getY());
    if (result != null) {
      mImageView.highlightAyah(result.getSura(), result.getAyah());
      mImageView.invalidate();
      mImageView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);

      // TODO Temporary UI until new UI is implemented
      new ShowAyahMenuTask().execute(result.getSura(), result.getAyah(), mPageNumber);
    }
  }
Beispiel #21
0
    @Override
    public boolean onSingleTapUp(MotionEvent e) {

      ChartAxes axes = isAvailableTap(e.getX(), e.getY());
      if (axes != null && tapPointListener != null) {
        tapPointListener.onTap(axes);
        currentPressedPoint = axes;
        refreshChart(0);
      }
      return true;
    }
Beispiel #22
0
 @Override
 public boolean onTrackballEvent(MotionEvent event) {
   if (event.getAction() == MotionEvent.ACTION_DOWN) {
     onKeyDown(KeyEvent.KEYCODE_DPAD_CENTER, null);
   } else {
     ZLApplication.Instance()
         .getCurrentView()
         .onTrackballRotated((int) (10 * event.getX()), (int) (10 * event.getY()));
   }
   return true;
 }
Beispiel #23
0
        @Override
        public boolean onDoubleTap(MotionEvent e) {
            ImageViewTouch2 imageView = mImageView;

            // Switch between the original scale and 3x scale.
            if (imageView.getScale() > 2F) {
                mImageView.zoomTo(1f);
            } else {
                mImageView.zoomToPoint(3f, e.getX(), e.getY());
            }
            return true;
        }
Beispiel #24
0
 @Override
 public boolean onTouch(View view, MotionEvent event) {
   String str = null;
   int i = 0;
   str =
       "x="
           + event.getX(i) / view.getMeasuredWidth()
           + ",y="
           + event.getY(i) / view.getMeasuredHeight();
   textView.setText(str);
   return false;
 }
Beispiel #25
0
 @Override
 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
   // Set the pie rotation directly.
   float scrollTheta =
       vectorToScalarScroll(
           distanceX,
           distanceY,
           e2.getX() - mPieBounds.centerX(),
           e2.getY() - mPieBounds.centerY());
   setPieRotation(getPieRotation() - (int) scrollTheta / FLING_VELOCITY_DOWNSCALE);
   return true;
 }
Beispiel #26
0
 @Override
 public boolean onTouchEvent(MotionEvent event) {
   // Log.w( "a", "touch me " + Float.toString( event.getX() ) + ", " + Float.toString(
   // event.getY() ) );
   float[] x = new float[event.getPointerCount()];
   float[] y = new float[event.getPointerCount()];
   for (int i = 0; i < event.getPointerCount(); i++) {
     x[i] = event.getX(i);
     y[i] = event.getY(i);
   }
   XoLib.input(1, x, y);
   mView.requestRender();
   return true;
 }
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

      float dX = e2.getX() - e1.getX();

      float dY = e1.getY() - e2.getY();

      if (Math.abs(dY) < SWIPE_MAX_OFF_PATH
          && Math.abs(velocityX) >= SWIPE_THRESHOLD_VELOCITY
          && Math.abs(dX) >= SWIPE_MIN_DISTANCE) {

        if (dX > 0) {
          swipeRight();

        } else {
          swipeLeft();
        }

        return true;
      }

      return false;
    }
Beispiel #28
0
  /** 当屏幕被触摸时调用 */
  @Override
  public boolean onTouchEvent(MotionEvent event) {

    // 设置贝塞尔曲线的坐标为触摸时坐标
    qStartX = (int) event.getX();
    qStartY = (int) event.getY();

    // 设置贝塞尔曲线的控制点坐标为终点坐标与起点坐标对应的差值的一半,注意这里不是曲线的中点
    qControlX = Math.abs(qEndX - qStartX) / 2;
    qCOntrolY = Math.abs(qEndY - qStartY) / 2;

    // 设置控制点的横坐标不返回
    cReturn = false;
    return super.onTouchEvent(event);
  }
Beispiel #29
0
 private void sendDownEvent() {
   if (DEBUG) {
     PtrCLog.d(LOG_TAG, "send down event");
   }
   final MotionEvent last = mLastMoveEvent;
   MotionEvent e =
       MotionEvent.obtain(
           last.getDownTime(),
           last.getEventTime(),
           MotionEvent.ACTION_DOWN,
           last.getX(),
           last.getY(),
           last.getMetaState());
   dispatchTouchEventSupper(e);
 }
 private void sendCancelEvent() {
   if (DEBUG) {
     PtrCLog.d(LOG_TAG, "send cancel event");
   }
   MotionEvent last = mDownEvent;
   last = mLastMoveEvent;
   MotionEvent e =
       MotionEvent.obtain(
           last.getDownTime(),
           last.getEventTime() + ViewConfiguration.getLongPressTimeout(),
           MotionEvent.ACTION_CANCEL,
           last.getX(),
           last.getY(),
           last.getMetaState());
   dispatchTouchEventSupper(e);
 }