Пример #1
0
  @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);
  }
Пример #2
0
 @Override
 public boolean onFling(MotionEvent start, MotionEvent finish, float v, float v2) {
   if (start.getRawY() - finish.getRawY() > (screenHeight / 2.5)) {
     this.finish();
   }
   return true;
 }
Пример #3
0
 @Override
 public boolean handleMotionEvent(MotionEvent event) {
   if ((event.getSource() & InputDevice.SOURCE_JOYSTICK) != 0) {
     int actionPointerIndex = event.getActionIndex();
     int action = event.getActionMasked();
     switch (action) {
       case MotionEvent.ACTION_MOVE:
         SDLJoystick joystick = getJoystick(event.getDeviceId());
         if (joystick != null) {
           for (int i = 0; i < joystick.axes.size(); i++) {
             InputDevice.MotionRange range = joystick.axes.get(i);
             /* Normalize the value to -1...1 */
             float value =
                 (event.getAxisValue(range.getAxis(), actionPointerIndex) - range.getMin())
                         / range.getRange()
                         * 2.0f
                     - 1.0f;
             SDLActivity.onNativeJoy(joystick.device_id, i, value);
           }
         }
         break;
       default:
         break;
     }
   }
   return true;
 }
Пример #4
0
 @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;
 }
Пример #5
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;
    }
Пример #6
0
  public boolean onTouchEvent(MotionEvent e) {
    x = e.getX();
    y = e.getY();

    // 更新を有効にする
    this.invalidate();
    return true;
  }
Пример #7
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;
 }
Пример #8
0
 @Override
 public boolean onTrackballEvent(MotionEvent event) {
   // Log.i(logTag, "onTrackballEvent");
   if (trackballEvent(event.getAction(), event.getX(), event.getY())) {
     postUpdate();
   }
   return true;
 }
 /** {@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;
 }
Пример #10
0
  @Override
  public boolean onScroll(MotionEvent start, MotionEvent finish, float v, float v2) {
    if (start.getRawY() - finish.getRawY() > (screenHeight / 2.5)) {
      ImageView imageView = (ImageView) this.findViewById(R.id.gestureImage);
      imageView.setImageResource(R.drawable.up_pressed);
    }

    return true;
  }
Пример #11
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;
 }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
    if (velocityTracker == null) { // If we do not have velocity tracker
      velocityTracker = VelocityTracker.obtain(); // then get one
    }
    velocityTracker.addMovement(event); // add this movement to it
    positiveScroll = true;

    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        {
          if (!flinger.isFinished()) { // If scrolling, then stop now
            flinger.forceFinished();
          }
          currentX = (int) event.getRawX();
          currentY = (int) event.getRawY();
          break;
        }
      case MotionEvent.ACTION_MOVE:
        {
          final int x2 = (int) event.getRawX();
          final int y2 = (int) event.getRawY();
          final int diffX = currentX - x2;
          final int diffY = currentY - y2;
          currentX = x2;
          currentY = y2;

          scrollBy(diffX, diffY);
          break;
        }
      case MotionEvent.ACTION_UP:
        {
          final VelocityTracker velocityTracker = this.velocityTracker;
          velocityTracker.computeCurrentVelocity(1000, maximumVelocity);
          int velocityX = (int) velocityTracker.getXVelocity();
          int velocityY = (int) velocityTracker.getYVelocity();

          if (Math.abs(velocityX) > minimumVelocity || Math.abs(velocityY) > minimumVelocity) {
            flinger.start(
                getActualScrollX(),
                getActualScrollY(),
                velocityX,
                velocityY,
                getMaxScrollX(),
                getMaxScrollY());
          } else {
            if (this.velocityTracker != null) { // If the velocity less than threshold
              this.velocityTracker.recycle(); // recycle the tracker
              this.velocityTracker = null;
            }
          }
          break;
        }
    }
    return true;
  }
Пример #13
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;
 }
Пример #14
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;
    }
Пример #15
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;
  }
Пример #16
0
  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);
    }
  }
Пример #17
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;
 }
Пример #18
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;
        }
Пример #19
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;
 }
Пример #20
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;
 }
Пример #21
0
 // 处理删除事件
 @Override
 public boolean onTouchEvent(MotionEvent event) {
   if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {
     int eventX = (int) event.getRawX();
     int eventY = (int) event.getRawY();
     Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);
     Rect rect = new Rect();
     getGlobalVisibleRect(rect);
     rect.left = rect.right - 50;
     if (rect.contains(eventX, eventY)) setText("");
   }
   return super.onTouchEvent(event);
 }
Пример #22
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();
    }
  }
Пример #23
0
  @Override
  public boolean onTouch(View view, MotionEvent motionEvent) {

    float xDelta = Math.abs(motionEvent.getRawX() - showcaseX);
    float yDelta = Math.abs(motionEvent.getRawY() - showcaseY);
    double distanceFromFocus = Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2));

    if (mOptions.hideOnClickOutside && distanceFromFocus > showcaseRadius) {
      this.hide();
      return true;
    }

    return mOptions.block && distanceFromFocus > showcaseRadius;
  }
Пример #24
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);
  }
Пример #25
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) {

    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;
  }
Пример #27
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);
  }
Пример #28
0
 @Override
 public boolean dispatchTouchEvent(MotionEvent ev) {
   super.dispatchTouchEvent(ev);
   boolean consumed = gesturedetector.onTouchEvent(ev);
   if (!consumed && ev.getAction() == MotionEvent.ACTION_DOWN) return true;
   else return consumed;
 }
Пример #29
0
 @Override
 public boolean dispatchTouchEvent(MotionEvent event) {
   //// System.out.println("flipStarted" + flipStarted);
   if (flipStarted) return true;
   //        if (header.isSourceSelectMode()) {
   if (header.dispatchTouchEvent(event)) {
     return true;
   }
   //        if (pageIndexView.dispatchTouchEvent(event)) {
   //            return true;
   //        }
   //        }
   if (enlargedMode) {
     current.onTouchEvent(event);
   }
   switch (event.getAction()) {
     case MotionEvent.ACTION_UP:
       return current.dispatchTouchEvent(event);
     case MotionEvent.ACTION_MOVE:
       {
         if (!enlargedMode) onTouchEvent(event);
         else current.onTouchEvent(event);
       }
   }
   return super.dispatchTouchEvent(event);
 }
Пример #30
0
    @Override
    public boolean onTouch(View v, MotionEvent event) {

      //            opened_position     =   mListView.getPositionForView((View) v.getParent());
      switch (event.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
          {
            if (moptionsDisplay) {
              switch (v.getId()) {
                case 111111:
                  if (SwipeType == Dismiss) {
                    moptionsDisplay = false;
                    performDismiss(mDownView_parent, temp_position);
                  } else
                    //                                      if(old_mDownView!=null &&
                    // mDownView!=old_mDownView){
                    //                                          ResetListItem(old_mDownView);
                    //                                          old_mDownView=null;
                    //                                          mDownView=null;
                    //                                      }
                    tcallbacks.HalfSwipeListView(temp_position);
                  return true;
                case 222222:
                  tcallbacks.FullSwipeListView(temp_position);
                  return true;
              }
            }
          }
          return false;
      }

      return false;
    }