Java Code Examples for android.view.MotionEvent#getX()
The following examples show how to use
android.view.MotionEvent#getX() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestAreaActivity.java From CatVision-io-SDK-Android with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX() - getRelativeLeft((View)clickMark.getParent()) - (clickMark.getWidth() / 2); int y = (int) event.getY() - getRelativeTop((View)clickMark.getParent()) - (clickMark.getHeight() / 2); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: clickMark.setX(x); clickMark.setY(y); break; case MotionEvent.ACTION_MOVE: clickMark.setX(x); clickMark.setY(y); break; case MotionEvent.ACTION_UP: break; } return true; }
Example 2
Source File: AppIntroViewPager.java From GithubApp with Apache License 2.0 | 6 votes |
private boolean checkPagingState(MotionEvent event) { if (!pagingEnabled) { return true; } if (!nextPagingEnabled) { if (event.getAction() == MotionEvent.ACTION_DOWN) { currentTouchDownX = event.getX(); } if (event.getAction() == MotionEvent.ACTION_MOVE) { if (detectSwipeToRight(event)) { return true; } } } return false; }
Example 3
Source File: InputOverlayDrawableDpad.java From citra_android with GNU General Public License v3.0 | 6 votes |
public boolean onConfigureTouch(MotionEvent event) { int pointerIndex = event.getActionIndex(); int fingerPositionX = (int) event.getX(pointerIndex); int fingerPositionY = (int) event.getY(pointerIndex); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mPreviousTouchX = fingerPositionX; mPreviousTouchY = fingerPositionY; break; case MotionEvent.ACTION_MOVE: mControlPositionX += fingerPositionX - mPreviousTouchX; mControlPositionY += fingerPositionY - mPreviousTouchY; setBounds(mControlPositionX, mControlPositionY, getWidth() + mControlPositionX, getHeight() + mControlPositionY); mPreviousTouchX = fingerPositionX; mPreviousTouchY = fingerPositionY; break; } return true; }
Example 4
Source File: GestureDetector.java From commcare-android with Apache License 2.0 | 6 votes |
public GestureDirection.UserGesture getGesture(MotionEvent motionEvent) { final float x = motionEvent.getX(); final float y = motionEvent.getY(); switch (motionEvent.getAction()) { case MotionEvent.ACTION_DOWN: mDirectionPoint = new GestureDirection(x, y); break; case MotionEvent.ACTION_MOVE: mDirectionPoint.updateEndPoint(x, y); break; case MotionEvent.ACTION_UP: if (mDirectionPoint != null) { return mDirectionPoint.getDirection(); } break; case MotionEvent.ACTION_CANCEL: mDirectionPoint = null; break; } return GestureDirection.UserGesture.SWIPE_UNKNOWN; }
Example 5
Source File: SwipeAdapterView.java From SwipeAdapterView with Apache License 2.0 | 6 votes |
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean b = viewDragHelper.shouldInterceptTouchEvent(ev); if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { viewDragHelper.processTouchEvent(ev); } float dx = 0, dy = 0; if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) { x = ev.getX(); y = ev.getY(); } else if (ev.getActionMasked() == MotionEvent.ACTION_MOVE) { dx = Math.abs(ev.getX() - x); dy = Math.abs(ev.getY() - y); x = ev.getX(); y = ev.getY(); } else if (ev.getActionMasked() == MotionEvent.ACTION_UP) { x = 0; y = 0; } boolean scroll = dx > 4 || dy > 4; //Log.i("tag", String.format("onScroll: %s %s %s", scroll, dx, dy)); return b && isNeedSwipe && scroll; }
Example 6
Source File: ToggleButton.java From Common with Apache License 2.0 | 5 votes |
@Override public boolean onTouchEvent(MotionEvent event) { if (!(mFactor == 0 || mFactor == 1)) { return false; } float eX = event.getX(); float eY = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mDX = eX; mDY = eY; mIsClickValid = true; case MotionEvent.ACTION_MOVE: if (mIsClickValid && (Math.abs(eX - mDX) > mTouchSlop || Math.abs(eY - mDY) > mTouchSlop)) { mIsClickValid = false; } return mIsClickValid; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: if (!mIsClickValid || eX < 0 || eX > mWidth || eY < 0 || eY > mHeight) { return false; } toggle(); return true; } return super.onTouchEvent(event); }
Example 7
Source File: PZSImageView.java From CameraV with GNU General Public License v3.0 | 5 votes |
/** Determine the space between the first two fingers */ private float spacing(MotionEvent event) { // ... double x = event.getX(0) - event.getX(1); double y = event.getY(0) - event.getY(1); return (float)Math.sqrt(x * x + y * y); }
Example 8
Source File: RangeSliderViewEx.java From AndroidReview with GNU General Public License v3.0 | 5 votes |
@Override public boolean onTouchEvent(MotionEvent event) { float y = event.getY(); float x = event.getX(); final int action = event.getActionMasked(); switch (action) { case MotionEvent.ACTION_DOWN: gotSlot = isInSelectedSlot(x, y); downX = x; downY = y; break; case MotionEvent.ACTION_MOVE: if (gotSlot) { if (x >= slotPositions[0] && x <= slotPositions[rangeCount - 1]) { currentSlidingX = x; currentSlidingY = y; invalidate(); } } break; case MotionEvent.ACTION_UP: if (gotSlot) { gotSlot = false; currentSlidingX = x; currentSlidingY = y; updateCurrentIndex(); } break; } return true; }
Example 9
Source File: OverlayPanelEventFilter.java From AndroidChromium with Apache License 2.0 | 5 votes |
/** * @param e1 The first down {@link MotionEvent} that started the scrolling. * @param e2 The move {@link MotionEvent} that triggered the current scroll. * @return Whether the distance is greater than the touch slop threshold. */ private boolean isDistanceGreaterThanTouchSlop(MotionEvent e1, MotionEvent e2) { float deltaX = e2.getX() - e1.getX(); float deltaY = e2.getY() - e1.getY(); // Check if the distance between the events |e1| and |e2| is greater than the touch slop. return isDistanceGreaterThanTouchSlop(deltaX, deltaY); }
Example 10
Source File: ItemTouchHelper.java From TelePlus-Android with GNU General Public License v2.0 | 5 votes |
@Override public void onLongPress(MotionEvent e) { if (!mShouldReactToLongPress) { return; } View child = findChildView(e); if (child != null) { ViewHolder vh = mRecyclerView.getChildViewHolder(child); if (vh != null) { if (!mCallback.hasDragFlag(mRecyclerView, vh)) { return; } int pointerId = e.getPointerId(0); // Long press is deferred. // Check w/ active pointer id to avoid selecting after motion // event is canceled. if (pointerId == mActivePointerId) { final int index = e.findPointerIndex(mActivePointerId); final float x = e.getX(index); final float y = e.getY(index); mInitialTouchX = x; mInitialTouchY = y; mDx = mDy = 0f; if (DEBUG) { Log.d(TAG, "onlong press: x:" + mInitialTouchX + ",y:" + mInitialTouchY); } if (mCallback.isLongPressDragEnabled()) { select(vh, ACTION_STATE_DRAG); } } } } }
Example 11
Source File: EasyDisplayMod.java From easydeviceinfo with Apache License 2.0 | 5 votes |
/** * Get display xy coordinates int [ ]. * * @param event * the event * * @return the int [ ] */ public final int[] getDisplayXYCoordinates(final MotionEvent event) { int[] coordinates = new int[2]; coordinates[0] = 0; coordinates[1] = 0; if (event.getAction() == MotionEvent.ACTION_DOWN) { coordinates[0] = (int) event.getX(); // X Coordinates coordinates[1] = (int) event.getY(); // Y Coordinates } return coordinates; }
Example 12
Source File: AnchorImageView.java From AnchorImageView with MIT License | 4 votes |
protected void disposeEvent(MotionEvent e) { if (anchors == null || anchors.size() == 0) { Toast.makeText(getContext(), "No Anchor", Toast.LENGTH_LONG).show(); } else { float x = e.getX(); float y = e.getY(); if (anchors != null) { for (Integer key : anchors.keySet()) { Anchor anchor = anchors.get(key); if (new RectF(widthRatio * (float) anchor.left, heightRatio * (float) anchor.top, widthRatio * (float) anchor.right, heightRatio * (float) anchor.bottom).contains(x, y)) { // =========@Bingo@========= this.anchor = anchor; //clean WarnAnchor if (isWarnAnchor) { isWarnAnchor = false; postInvalidate(); } //on listener if (onAnchorClickListener != null) onAnchorClickListener.onAnchorClick(anchor, anchor.id, widthRatio, heightRatio); return; } } // =========@Cry@========= //current click show -> return /*if (rectClickAnchor != null && !rectClickAnchor.isEmpty()) return;*/ //mark WarnAnchor if (isWarnAnchor) return; isWarnAnchor = true; postInvalidate(); } } }
Example 13
Source File: SnackbarView.java From delion with Apache License 2.0 | 4 votes |
private boolean isInBounds(MotionEvent ev, View view) { return ev.getX() > view.getX() && ev.getX() - view.getX() < view.getWidth() && ev.getY() > view.getY() && ev.getY() - view.getY() < view.getHeight(); }
Example 14
Source File: AbsSeekBar.java From android_9.0.0_r45 with Apache License 2.0 | 4 votes |
@Override public boolean onTouchEvent(MotionEvent event) { if (!mIsUserSeekable || !isEnabled()) { return false; } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if (isInScrollingContainer()) { mTouchDownX = event.getX(); } else { startDrag(event); } break; case MotionEvent.ACTION_MOVE: if (mIsDragging) { trackTouchEvent(event); } else { final float x = event.getX(); if (Math.abs(x - mTouchDownX) > mScaledTouchSlop) { startDrag(event); } } break; case MotionEvent.ACTION_UP: if (mIsDragging) { trackTouchEvent(event); onStopTrackingTouch(); setPressed(false); } else { // Touch up when we never crossed the touch slop threshold should // be interpreted as a tap-seek to that location. onStartTrackingTouch(); trackTouchEvent(event); onStopTrackingTouch(); } // ProgressBar doesn't know to repaint the thumb drawable // in its inactive state when the touch stops (because the // value has not apparently changed) invalidate(); break; case MotionEvent.ACTION_CANCEL: if (mIsDragging) { onStopTrackingTouch(); setPressed(false); } invalidate(); // see above explanation break; } return true; }
Example 15
Source File: SVBar.java From HoloColorPicker with Apache License 2.0 | 4 votes |
@Override public boolean onTouchEvent(MotionEvent event) { getParent().requestDisallowInterceptTouchEvent(true); // Convert coordinates to our internal coordinate system float dimen; if (mOrientation == ORIENTATION_HORIZONTAL) { dimen = event.getX(); } else { dimen = event.getY(); } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mIsMovingPointer = true; // Check whether the user pressed on the pointer if (dimen >= (mBarPointerHaloRadius) && dimen <= (mBarPointerHaloRadius + mBarLength)) { mBarPointerPosition = Math.round(dimen); calculateColor(Math.round(dimen)); mBarPointerPaint.setColor(mColor); invalidate(); } break; case MotionEvent.ACTION_MOVE: if (mIsMovingPointer) { // Move the the pointer on the bar. if (dimen >= mBarPointerHaloRadius && dimen <= (mBarPointerHaloRadius + mBarLength)) { mBarPointerPosition = Math.round(dimen); calculateColor(Math.round(dimen)); mBarPointerPaint.setColor(mColor); if (mPicker != null) { mPicker.setNewCenterColor(mColor); mPicker.changeOpacityBarColor(mColor); } invalidate(); } else if (dimen < mBarPointerHaloRadius) { mBarPointerPosition = mBarPointerHaloRadius; mColor = Color.WHITE; mBarPointerPaint.setColor(mColor); if (mPicker != null) { mPicker.setNewCenterColor(mColor); mPicker.changeOpacityBarColor(mColor); } invalidate(); } else if (dimen > (mBarPointerHaloRadius + mBarLength)) { mBarPointerPosition = mBarPointerHaloRadius + mBarLength; mColor = Color.BLACK; mBarPointerPaint.setColor(mColor); if (mPicker != null) { mPicker.setNewCenterColor(mColor); mPicker.changeOpacityBarColor(mColor); } invalidate(); } } break; case MotionEvent.ACTION_UP: mIsMovingPointer = false; break; } return true; }
Example 16
Source File: CursorWheelLayout.java From CursorWheelLayout with Apache License 2.0 | 4 votes |
@Override public boolean dispatchTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if (!isEventInWheel(x, y)) { return false; } mLastX = x; mLastY = y; mDownTime = System.currentTimeMillis(); mTmpAngle = 0; mIsDraging = false; if (mIsFling) { removeCallbacks(mFlingRunnable); mIsFling = false; return true; } break; case MotionEvent.ACTION_MOVE: /** * 获得开始的角度 */ final float start = getAngle(mLastX, mLastY); /** * 获得当前的角度 */ final float end = getAngle(x, y); // 如果是一、四象限,则直接(end-start)代表角度改变值(正是上移动负是下拉) if (getQuadrant(x, y) == 1 || getQuadrant(x, y) == 4) { mStartAngle += end - start; mTmpAngle += end - start; } else // 二、三象限,(start - end)代表角度改变值 { mStartAngle += start - end; mTmpAngle += start - end; } mIsDraging = true; // 重新布局 requestLayout(); mLastX = x; mLastY = y; break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: // 计算,每秒移动的角度 float anglePerSecond = mTmpAngle * 1000 / (System.currentTimeMillis() - mDownTime); // 如果达到该值认为是快速移动 if (Math.abs(anglePerSecond) > mFlingableValue && !mIsFling) { mFlingRunnable.startUsingVelocity(anglePerSecond); return true; } mIsFling = false; mIsDraging = false; mFlingRunnable.stop(false); scrollIntoSlots(); // 如果当前旋转角度超过NOCLICK_VALUE屏蔽点击 if (Math.abs(mTmpAngle) > NOCLICK_VALUE) { return true; } break; } return super.dispatchTouchEvent(event); }
Example 17
Source File: TouchImageView.java From SwipableLayout with Apache License 2.0 | 4 votes |
@Override public boolean onTouch(View v, MotionEvent event) { mScaleDetector.onTouchEvent(event); mGestureDetector.onTouchEvent(event); PointF curr = new PointF(event.getX(), event.getY()); if (state == State.NONE || state == State.DRAG || state == State.FLING) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: last.set(curr); if (fling != null) fling.cancelFling(); setState(State.DRAG); break; case MotionEvent.ACTION_MOVE: if (state == State.DRAG) { float deltaX = curr.x - last.x; float deltaY = curr.y - last.y; float fixTransX = getFixDragTrans(deltaX, viewWidth, getImageWidth()); float fixTransY = getFixDragTrans(deltaY, viewHeight, getImageHeight()); matrix.postTranslate(fixTransX, fixTransY); fixTrans(); last.set(curr.x, curr.y); } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: setState(State.NONE); break; } } setImageMatrix(matrix); // // User-defined OnTouchListener // if (userTouchListener != null) { userTouchListener.onTouch(v, event); } // // OnTouchImageViewListener is set: TouchImageView dragged by user. // if (touchImageViewListener != null) { touchImageViewListener.onMove(); } // // indicate event was handled // return true; }
Example 18
Source File: ScrollableViewGroup.java From Klyph with MIT License | 4 votes |
protected final void updatePosition(MotionEvent paramMotionEvent) { this.mLastPosition[0] = paramMotionEvent.getX(); this.mLastPosition[1] = paramMotionEvent.getY(); }
Example 19
Source File: MoneySelectRuleView.java From RulerView with Apache License 2.0 | 4 votes |
@Override public boolean onTouchEvent(MotionEvent event) { final int action = event.getAction(); final int x = (int) event.getX(); final int y = (int) event.getY(); if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMovement(event); logD("onTouchEvent: action=%d", action); switch (action) { case MotionEvent.ACTION_DOWN: mIsMoving = false; mDownX = x; mDownY = y; if (!mScroller.isFinished()) { mScroller.forceFinished(true); } break; case MotionEvent.ACTION_MOVE: final int dx = x - mLastX; if (!mIsMoving) { final int dy = y - mLastY; if (Math.abs(x - mDownX) <= TOUCH_SLOP || Math.abs(dx) < Math.abs(dy)) { break; } mIsMoving = true; } mCurrentDistance -= dx; computeValue(); break; case MotionEvent.ACTION_UP: if (!mIsMoving) { break; } // 计算速度 mVelocityTracker.computeCurrentVelocity(1000, MAX_FLING_VELOCITY); // 获取当前的水平速度 int xVelocity = (int) mVelocityTracker.getXVelocity(); logD("up: xVelocity=%d", xVelocity); if (Math.abs(xVelocity) < MIN_FLING_VELOCITY) { // 滑动刻度 scrollToGradation(); } else { // 惯性滑动。 mScroller.fling((int) mCurrentDistance, 0, -xVelocity, 0, 0, mRangeDistance, 0, 0); invalidate(); } break; case MotionEvent.ACTION_CANCEL: if (!mScroller.isFinished()) { // 结束滑动,并把数值立马置为终点值 mScroller.abortAnimation(); } break; default: break; } mLastX = x; mLastY = y; return true; }
Example 20
Source File: ResideMenu.java From UltimateAndroid with Apache License 2.0 | 4 votes |
@Override public boolean dispatchTouchEvent(MotionEvent ev) { float currentActivityScaleX = ViewHelper.getScaleX(viewActivity); if (currentActivityScaleX == 1.0f) setScaleDirectionByRawX(ev.getRawX()); switch (ev.getAction()){ case MotionEvent.ACTION_DOWN: lastActionDownX = ev.getX(); lastActionDownY = ev.getY(); isInIgnoredView = isInIgnoredView(ev) && !isOpened(); pressedState = PRESSED_DOWN; break; case MotionEvent.ACTION_MOVE: if (isInIgnoredView || isInDisableDirection(scaleDirection)) break; if(pressedState != PRESSED_DOWN && pressedState != PRESSED_MOVE_HORIZANTAL) break; int xOffset = (int) (ev.getX() - lastActionDownX); int yOffset = (int) (ev.getY() - lastActionDownY); if(pressedState == PRESSED_DOWN) { if(yOffset > 25 || yOffset < -25) { pressedState = PRESSED_MOVE_VERTICAL; break; } if(xOffset < -50 || xOffset > 50) { pressedState = PRESSED_MOVE_HORIZANTAL; ev.setAction(MotionEvent.ACTION_CANCEL); } } else if(pressedState == PRESSED_MOVE_HORIZANTAL) { if (currentActivityScaleX < 0.95) showScrollViewMenu(); float targetScale = getTargetScale(ev.getRawX()); ViewHelper.setScaleX(viewActivity, targetScale); ViewHelper.setScaleY(viewActivity, targetScale); ViewHelper.setScaleX(imageViewShadow, targetScale + shadowAdjustScaleX); ViewHelper.setScaleY(imageViewShadow, targetScale + shadowAdjustScaleY); ViewHelper.setAlpha(scrollViewMenu, (1 - targetScale) * 2.0f); lastRawX = ev.getRawX(); return true; } break; case MotionEvent.ACTION_UP: if (isInIgnoredView) break; if (pressedState != PRESSED_MOVE_HORIZANTAL) break; pressedState = PRESSED_DONE; if (isOpened()){ if (currentActivityScaleX > 0.56f) closeMenu(); else openMenu(scaleDirection); }else{ if (currentActivityScaleX < 0.94f){ openMenu(scaleDirection); }else{ closeMenu(); } } break; } lastRawX = ev.getRawX(); return super.dispatchTouchEvent(ev); }