android.support.v4.view.MotionEventCompat#getY ( )源码实例Demo

下面列出了android.support.v4.view.MotionEventCompat#getY ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: BigApp_Discuz_Android   文件: CustomViewAbove.java
private void determineDrag(MotionEvent ev) {
	final int activePointerId = mActivePointerId;
	final int pointerIndex = getPointerIndex(ev, activePointerId);
	if (activePointerId == INVALID_POINTER || pointerIndex == INVALID_POINTER)
		return;
	final float x = MotionEventCompat.getX(ev, pointerIndex);
	final float dx = x - mLastMotionX;
	final float xDiff = Math.abs(dx);
	final float y = MotionEventCompat.getY(ev, pointerIndex);
	final float dy = y - mLastMotionY;
	final float yDiff = Math.abs(dy);
	if (xDiff > (isMenuOpen()?mTouchSlop/2:mTouchSlop) && xDiff > yDiff && thisSlideAllowed(dx)) {		
		startDrag();
		mLastMotionX = x;
		mLastMotionY = y;
		setScrollingCacheEnabled(true);
		// TODO add back in touch slop check
	} else if (xDiff > mTouchSlop) {
		mIsUnableToDrag = true;
	}
}
 
源代码2 项目: photo-editor-android   文件: ViewDragHelper.java
private void saveLastMotion(MotionEvent ev) {
    final int pointerCount = MotionEventCompat.getPointerCount(ev);
    for (int i = 0; i < pointerCount; i++) {
        final int pointerId = MotionEventCompat.getPointerId(ev, i);
        final float x = MotionEventCompat.getX(ev, i);
        final float y = MotionEventCompat.getY(ev, i);
        // Sometimes we can try and save last motion for a pointer never recorded in initial motion. In this case we just discard it.
        if (mLastMotionX != null && mLastMotionY != null
                && mLastMotionX.length > pointerId && mLastMotionY.length > pointerId) {
            mLastMotionX[pointerId] = x;
            mLastMotionY[pointerId] = y;
        }
    }
}
 
源代码3 项目: ChipHellClient   文件: ViewDragHelper.java
private void saveLastMotion(MotionEvent ev) {
    final int pointerCount = MotionEventCompat.getPointerCount(ev);
    for (int i = 0; i < pointerCount; i++) {
        final int pointerId = MotionEventCompat.getPointerId(ev, i);
        final float x = MotionEventCompat.getX(ev, i);
        final float y = MotionEventCompat.getY(ev, i);
        mLastMotionX[pointerId] = x;
        mLastMotionY[pointerId] = y;
    }
}
 
源代码4 项目: Overchan-Android   文件: SwipeRefreshLayout.java
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    final int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码5 项目: Phoenix   文件: PullToRefreshView.java
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    final int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码6 项目: CanPhotos   文件: ScaleDragDetector.java
private float getActiveY(MotionEvent ev) {
    try {
        return MotionEventCompat.getY(ev, mActivePointerIndex);
    } catch (Exception e) {
        return ev.getY();
    }
}
 
源代码7 项目: PigeonholeView   文件: PigeonholeView.java
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    final int action = MotionEventCompat.getActionMasked(ev);
    switch (action) {
        case MotionEvent.ACTION_DOWN: {
            try {
                final int pointerIndex = MotionEventCompat.getActionIndex(ev);
                final float x = MotionEventCompat.getX(ev, pointerIndex);
                final float y = MotionEventCompat.getY(ev, pointerIndex);

                // Remember where we started (for dragging)
                lastTouchX = x;
                lastTouchY = y;
                // Save the ID of this pointer (for dragging)
                activePointerId = MotionEventCompat.getPointerId(ev, 0);
            } catch (IllegalArgumentException ex) { // pointerIndex out of range
                Log.e(TAG, "IllegalArgumentException: " + ex.getMessage());
                return false;
            }
            break;
        }
        case MotionEvent.ACTION_UP: {
            onMouseActionUp(ev);
            break;
        }
        case MotionEvent.ACTION_CANCEL: {
            cancelDrag();
            break;
        }
    }

    return isDragging;
}
 
源代码8 项目: MiBandDecompiled   文件: ViewDragHelper.java
private void a(MotionEvent motionevent)
{
    int i1 = MotionEventCompat.getPointerCount(motionevent);
    for (int j1 = 0; j1 < i1; j1++)
    {
        int k1 = MotionEventCompat.getPointerId(motionevent, j1);
        float f1 = MotionEventCompat.getX(motionevent, j1);
        float f2 = MotionEventCompat.getY(motionevent, j1);
        j[k1] = f1;
        k[k1] = f2;
    }

}
 
源代码9 项目: stynico   文件: SlidingLayout.java
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    final int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码10 项目: letv   文件: SwipeRefreshLayout.java
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1.0f;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码11 项目: VerticalViewPager   文件: VerticalViewPager.java
private void onSecondaryPointerUp(MotionEvent ev) {
    final int pointerIndex = MotionEventCompat.getActionIndex(ev);
    final int pointerId = MotionEventCompat.getPointerId(ev, pointerIndex);
    if (pointerId == mActivePointerId) {
        // This was our active pointer going up. Choose a new
        // active pointer and adjust accordingly.
        final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
        mLastMotionY = MotionEventCompat.getY(ev, newPointerIndex);
        mActivePointerId = MotionEventCompat.getPointerId(ev, newPointerIndex);
        if (mVelocityTracker != null) {
            mVelocityTracker.clear();
        }
    }
}
 
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    final int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码13 项目: SwipeAdapterView   文件: ViewDragHelper.java
private void saveLastMotion(MotionEvent ev) {
    final int pointerCount = MotionEventCompat.getPointerCount(ev);
    for (int i = 0; i < pointerCount; i++) {
        final int pointerId = MotionEventCompat.getPointerId(ev, i);
        final float x = MotionEventCompat.getX(ev, i);
        final float y = MotionEventCompat.getY(ev, i);
        mLastMotionX[pointerId] = x;
        mLastMotionY[pointerId] = y;
    }
}
 
源代码14 项目: Cotable   文件: MySwipeRefreshLayout.java
private float getMotionEventY(MotionEvent ev, int activePointerId) {
    final int index = MotionEventCompat.findPointerIndex(ev, activePointerId);
    if (index < 0) {
        return -1;
    }
    return MotionEventCompat.getY(ev, index);
}
 
源代码15 项目: Nimingban   文件: ViewDragHelper.java
private void saveLastMotion(MotionEvent ev) {
    final int pointerCount = MotionEventCompat.getPointerCount(ev);
    for (int i = 0; i < pointerCount; i++) {
        final int pointerId = MotionEventCompat.getPointerId(ev, i);
        final float x = MotionEventCompat.getX(ev, i);
        final float y = MotionEventCompat.getY(ev, i);
        mLastMotionX[pointerId] = x;
        mLastMotionY[pointerId] = y;
    }
}
 
源代码16 项目: android-recipes-app   文件: ViewDragHelper.java
private void saveLastMotion(MotionEvent ev) {
    final int pointerCount = MotionEventCompat.getPointerCount(ev);
    for (int i = 0; i < pointerCount; i++) {
        final int pointerId = MotionEventCompat.getPointerId(ev, i);
        final float x = MotionEventCompat.getX(ev, i);
        final float y = MotionEventCompat.getY(ev, i);
        mLastMotionX[pointerId] = x;
        mLastMotionY[pointerId] = y;
    }
}
 
源代码17 项目: android-FlipView   文件: FlipView.java
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

	if (!mIsFlippingEnabled) {
		return false;
	}

	if (mPageCount < 1) {
		return false;
	}

	final int action = ev.getAction() & MotionEvent.ACTION_MASK;

	if (action == MotionEvent.ACTION_CANCEL
			|| action == MotionEvent.ACTION_UP) {
		mIsFlipping = false;
		mIsUnableToFlip = false;
		mActivePointerId = INVALID_POINTER;
		if (mVelocityTracker != null) {
			mVelocityTracker.recycle();
			mVelocityTracker = null;
		}
		return false;
	}

	if (action != MotionEvent.ACTION_DOWN) {
		if (mIsFlipping) {
			return true;
		} else if (mIsUnableToFlip) {
			return false;
		}
	}

	switch (action) {
	case MotionEvent.ACTION_MOVE:
		final int activePointerId = mActivePointerId;
		if (activePointerId == INVALID_POINTER) {
			break;
		}

		final int pointerIndex = MotionEventCompat.findPointerIndex(ev,
				activePointerId);
		if (pointerIndex == -1) {
			mActivePointerId = INVALID_POINTER;
			break;
		}

		final float x = MotionEventCompat.getX(ev, pointerIndex);
		final float dx = x - mLastX;
		final float xDiff = Math.abs(dx);
		final float y = MotionEventCompat.getY(ev, pointerIndex);
		final float dy = y - mLastY;
		final float yDiff = Math.abs(dy);

		if ((mIsFlippingVertically && yDiff > mTouchSlop && yDiff > xDiff)
				|| (!mIsFlippingVertically && xDiff > mTouchSlop && xDiff > yDiff)) {
			mIsFlipping = true;
			mLastX = x;
			mLastY = y;
		} else if ((mIsFlippingVertically && xDiff > mTouchSlop)
				|| (!mIsFlippingVertically && yDiff > mTouchSlop)) {
			mIsUnableToFlip = true;
		}
		break;

	case MotionEvent.ACTION_DOWN:
		mActivePointerId = ev.getAction()
				& MotionEvent.ACTION_POINTER_INDEX_MASK;
		mLastX = MotionEventCompat.getX(ev, mActivePointerId);
		mLastY = MotionEventCompat.getY(ev, mActivePointerId);

		mIsFlipping = !mScroller.isFinished() | mPeakAnim != null;
		mIsUnableToFlip = false;
		mLastTouchAllowed = true;

		break;
	case MotionEventCompat.ACTION_POINTER_UP:
		onSecondaryPointerUp(ev);
		break;
	}

	if (!mIsFlipping) {
		trackVelocity(ev);
	}

	return mIsFlipping;
}
 
源代码18 项目: BigApp_WordPress_Android   文件: CustomViewAbove.java
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

	if (!mEnabled)
		return false;

	final int action = ev.getAction() & MotionEventCompat.ACTION_MASK;

	if (DEBUG)
		if (action == MotionEvent.ACTION_DOWN)
			Log.v(TAG, "Received ACTION_DOWN");

	if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP
			|| (action != MotionEvent.ACTION_DOWN && mIsUnableToDrag)) {
		endDrag();
		return false;
	}

	switch (action) {
	case MotionEvent.ACTION_MOVE:
		determineDrag(ev);
		break;
	case MotionEvent.ACTION_DOWN:
		int index = MotionEventCompat.getActionIndex(ev);
		mActivePointerId = MotionEventCompat.getPointerId(ev, index);
		if (mActivePointerId == INVALID_POINTER)
			break;
		mLastMotionX = mInitialMotionX = MotionEventCompat.getX(ev, index);
		mLastMotionY = MotionEventCompat.getY(ev, index);
		if (thisTouchAllowed(ev)) {
			mIsBeingDragged = false;
			mIsUnableToDrag = false;
			if (isMenuOpen() && mViewBehind.menuTouchInQuickReturn(mContent, mCurItem, ev.getX() + mScrollX)) {
				mQuickReturn = true;
			}
		} else {
			mIsUnableToDrag = true;
		}
		break;
	case MotionEventCompat.ACTION_POINTER_UP:
		onSecondaryPointerUp(ev);
		break;
	}

	if (!mIsBeingDragged) {
		if (mVelocityTracker == null) {
			mVelocityTracker = VelocityTracker.obtain();
		}
		mVelocityTracker.addMovement(ev);
	}
	return mIsBeingDragged || mQuickReturn;
}
 
源代码19 项目: LiuAGeAndroid   文件: CustomViewAbove.java
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

	if (!mEnabled)
		return false;

	final int action = ev.getAction() & MotionEventCompat.ACTION_MASK;

	if (DEBUG)
		if (action == MotionEvent.ACTION_DOWN)
			Log.v(TAG, "Received ACTION_DOWN");

	if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP
			|| (action != MotionEvent.ACTION_DOWN && mIsUnableToDrag)) {
		endDrag();
		return false;
	}

	switch (action) {
	case MotionEvent.ACTION_MOVE:
		determineDrag(ev);
		break;
	case MotionEvent.ACTION_DOWN:
		int index = MotionEventCompat.getActionIndex(ev);
		mActivePointerId = MotionEventCompat.getPointerId(ev, index);
		if (mActivePointerId == INVALID_POINTER)
			break;
		mLastMotionX = mInitialMotionX = MotionEventCompat.getX(ev, index);
		mLastMotionY = MotionEventCompat.getY(ev, index);
		if (thisTouchAllowed(ev)) {
			mIsBeingDragged = false;
			mIsUnableToDrag = false;
			if (isMenuOpen() && mViewBehind.menuTouchInQuickReturn(mContent, mCurItem, ev.getX() + mScrollX)) {
				mQuickReturn = true;
			}
		} else {
			mIsUnableToDrag = true;
		}
		break;
	case MotionEventCompat.ACTION_POINTER_UP:
		onSecondaryPointerUp(ev);
		break;
	}

	if (!mIsBeingDragged) {
		if (mVelocityTracker == null) {
			mVelocityTracker = VelocityTracker.obtain();
		}
		mVelocityTracker.addMovement(ev);
	}
	return mIsBeingDragged || mQuickReturn;
}
 
源代码20 项目: letv   文件: ItemTouchHelper.java
private boolean checkSelectForSwipe(int action, MotionEvent motionEvent, int pointerIndex) {
    if (this.mSelected != null || action != 2 || this.mActionState == 2 || !this.mCallback.isItemViewSwipeEnabled()) {
        return false;
    }
    if (this.mRecyclerView.getScrollState() == 1) {
        return false;
    }
    ViewHolder vh = findSwipedView(motionEvent);
    if (vh == null) {
        return false;
    }
    int swipeFlags = (65280 & this.mCallback.getAbsoluteMovementFlags(this.mRecyclerView, vh)) >> 8;
    if (swipeFlags == 0) {
        return false;
    }
    float x = MotionEventCompat.getX(motionEvent, pointerIndex);
    float dx = x - this.mInitialTouchX;
    float dy = MotionEventCompat.getY(motionEvent, pointerIndex) - this.mInitialTouchY;
    float absDx = Math.abs(dx);
    float absDy = Math.abs(dy);
    if (absDx < ((float) this.mSlop) && absDy < ((float) this.mSlop)) {
        return false;
    }
    if (absDx > absDy) {
        if (dx < 0.0f && (swipeFlags & 4) == 0) {
            return false;
        }
        if (dx > 0.0f && (swipeFlags & 8) == 0) {
            return false;
        }
    } else if (dy < 0.0f && (swipeFlags & 1) == 0) {
        return false;
    } else {
        if (dy > 0.0f && (swipeFlags & 2) == 0) {
            return false;
        }
    }
    this.mDy = 0.0f;
    this.mDx = 0.0f;
    this.mActivePointerId = MotionEventCompat.getPointerId(motionEvent, 0);
    select(vh, 1);
    return true;
}