List of usage examples for android.support.v4.view MotionEventCompat getActionMasked
public static int getActionMasked(MotionEvent event)
From source file:com.github.ppamorim.dragger.DraggerView.java
/** * Detect the type of motion event (like touch) * at the DraggerView, this can be a simple * detector of the touch, not the listener ifself. * * @param ev Event of MotionEvent/*from ww w . j ava 2s . co m*/ * @return View is touched */ @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (!isEnabled() || !canSlide()) { return false; } final int action = MotionEventCompat.getActionMasked(ev); switch (action) { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: dragHelper.cancel(); return false; case MotionEvent.ACTION_DOWN: int index = MotionEventCompat.getActionIndex(ev); activePointerId = MotionEventCompat.getPointerId(ev, index); if (activePointerId == INVALID_POINTER) { return false; } default: return dragHelper.shouldInterceptTouchEvent(ev); } }
From source file:com.waz.zclient.pages.main.conversationlist.views.listview.SwipeListView.java
/** * @see android.widget.ListView#onInterceptTouchEvent(android.view.MotionEvent) */// w w w. j a v a 2 s . co m @Override public boolean onInterceptTouchEvent(MotionEvent ev) { int action = MotionEventCompat.getActionMasked(ev); final float x = ev.getX(); final float y = ev.getY(); switch (action) { case MotionEvent.ACTION_DOWN: touchState = TOUCH_STATE_REST; velocityTracker = VelocityTracker.obtain(); velocityTracker.addMovement(ev); lastMotionX = x; lastMotionY = y; if (isItemOpen) { getParent().requestDisallowInterceptTouchEvent(true); //return true; } return super.onInterceptTouchEvent(ev); case MotionEvent.ACTION_MOVE: if (touchState != TOUCH_STATE_REST) { return true; } break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: velocityTracker.recycle(); velocityTracker = null; break; } return super.onInterceptTouchEvent(ev); }
From source file:com.android2.calculator3.view.CalculatorPadView.java
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { int action = MotionEventCompat.getActionMasked(ev); float pos = ev.getRawX(); mInterceptingTouchEvents = false;//from w w w .j a va 2 s . co m switch (action) { case MotionEvent.ACTION_DOWN: mInitialMotion = pos; mLastMotion = pos; handleDown(); break; case MotionEvent.ACTION_MOVE: // Reset initial motion if the user drags in a different direction suddenly if ((pos - mInitialMotion) / Math.abs(pos - mInitialMotion) != (pos - mLastMotion) / Math.abs(pos - mLastMotion)) { mInitialMotion = mLastMotion; } float delta = Math.abs(pos - mInitialMotion); if (delta > mTouchSlop) { float dx = pos - mInitialMotion; if (dx < 0) { mInterceptingTouchEvents = getState() == TranslateState.COLLAPSED; } else if (dx > 0) { mInterceptingTouchEvents = getState() == TranslateState.EXPANDED; } } mLastMotion = pos; break; } return mInterceptingTouchEvents; }
From source file:com.github.ppamorim.cult.CultView.java
/** * Override method to dispatch touch//from ww w .java2s . co m * event to the dragged view. * * @param ev captured. * @return true if the touch event is realized over the drag. */ @Override public boolean onTouchEvent(MotionEvent ev) { int actionMasked = MotionEventCompat.getActionMasked(ev); if ((actionMasked & MotionEventCompat.ACTION_MASK) == MotionEvent.ACTION_DOWN) { activePointerId = MotionEventCompat.getPointerId(ev, actionMasked); } if (activePointerId == INVALID_POINTER) { return false; } dragHelper.processTouchEvent(ev); return ViewUtil.isViewHit(this, contentOut, (int) ev.getX(), (int) ev.getY()); }
From source file:com.kuloud.android.unity.ui.widget.steprefresh.PullToRefreshView.java
@Override public boolean onTouchEvent(@NonNull MotionEvent ev) { // if (!mIsBeingDragged) { // return super.onTouchEvent(ev); // }/*from ww w . j a va2s .com*/ final int action = MotionEventCompat.getActionMasked(ev); switch (action) { case MotionEvent.ACTION_MOVE: { final int pointerIndex = MotionEventCompat.findPointerIndex(ev, mActivePointerId); if (pointerIndex < 0) { return false; } final float y = MotionEventCompat.getY(ev, pointerIndex); final float yDiff = y - mInitialMotionY; final float scrollTop = yDiff * DRAG_RATE; mCurrentDragPercent = scrollTop / mTotalDragDistance; if (mCurrentDragPercent < 0) { return false; } float boundedDragPercent = Math.min(1f, Math.abs(mCurrentDragPercent)); float extraOS = Math.abs(scrollTop) - mTotalDragDistance; float slingshotDist = mTotalDragDistance; float tensionSlingshotPercent = Math.max(0, Math.min(extraOS, slingshotDist * 2) / slingshotDist); float tensionPercent = (float) ((tensionSlingshotPercent / 4) - Math.pow((tensionSlingshotPercent / 4), 2)) * 2f; float extraMove = (slingshotDist) * tensionPercent / 2; int targetY = (int) ((slingshotDist * boundedDragPercent) + extraMove); mBaseRefreshView.setPercent(mCurrentDragPercent, true); setTargetOffsetTop(targetY - mCurrentOffsetTop); break; } case MotionEventCompat.ACTION_POINTER_DOWN: final int index = MotionEventCompat.getActionIndex(ev); mActivePointerId = MotionEventCompat.getPointerId(ev, index); break; case MotionEventCompat.ACTION_POINTER_UP: onSecondaryPointerUp(ev); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: { if (mActivePointerId == INVALID_POINTER) { return false; } final int pointerIndex = MotionEventCompat.findPointerIndex(ev, mActivePointerId); final float y = MotionEventCompat.getY(ev, pointerIndex); final float overScrollTop = (y - mInitialMotionY) * DRAG_RATE; mIsBeingDragged = false; if (overScrollTop > mTotalDragDistance) { setRefreshing(true, true); } else { mRefreshing = false; animateOffsetToPosition(mAnimateToStartPosition, false); } mActivePointerId = INVALID_POINTER; return false; } } return true; }
From source file:com.example.administrator.iclub21.view.SlideSwitch.java
@Override public boolean onTouchEvent(MotionEvent event) { if (slideable == false) return super.onTouchEvent(event); int action = MotionEventCompat.getActionMasked(event); switch (action) { case MotionEvent.ACTION_DOWN: eventStartX = (int) event.getRawX(); break;//from w w w .j ava 2 s . c om case MotionEvent.ACTION_MOVE: eventLastX = (int) event.getRawX(); diffX = eventLastX - eventStartX; int tempX = diffX + frontRect_left_begin; tempX = (tempX > max_left ? max_left : tempX); tempX = (tempX < min_left ? min_left : tempX); if (tempX >= min_left && tempX <= max_left) { frontRect_left = tempX; alpha = (int) (255 * (float) tempX / (float) max_left); invalidateView(); } break; case MotionEvent.ACTION_UP: int wholeX = (int) (event.getRawX() - eventStartX); frontRect_left_begin = frontRect_left; boolean toRight; toRight = (frontRect_left_begin > max_left / 2 ? true : false); if (Math.abs(wholeX) < 3) { toRight = !toRight; } moveToDest(toRight); break; default: break; } return true; }
From source file:com.tasomaniac.openwith.resolver.ResolverDrawerLayout.java
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = MotionEventCompat.getActionMasked(ev); if (action == MotionEvent.ACTION_DOWN) { mVelocityTracker.clear();/*from w ww. j av a 2s.c o m*/ } mVelocityTracker.addMovement(ev); switch (action) { case MotionEvent.ACTION_DOWN: { final float x = ev.getX(0); final float y = ev.getY(0); mInitialTouchX = x; mInitialTouchY = mLastTouchY = y; mOpenOnClick = isListChildUnderClipped(x, y) && mCollapsibleHeight > 0; } break; case MotionEvent.ACTION_MOVE: { final float x = ev.getX(0); final float y = ev.getY(0); final float dy = y - mInitialTouchY; if (Math.abs(dy) > mTouchSlop && findChildUnder(x, y) != null && (getNestedScrollAxes() & ViewCompat.SCROLL_AXIS_VERTICAL) == 0) { mActivePointerId = ev.getPointerId(0); mIsDragging = true; mLastTouchY = Math.max(mLastTouchY - mTouchSlop, Math.min(mLastTouchY + dy, mLastTouchY + mTouchSlop)); } } break; case MotionEvent.ACTION_POINTER_UP: { onSecondaryPointerUp(ev); } break; case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: { resetTouch(); } break; } if (mIsDragging) { abortAnimation(); } return mIsDragging || mOpenOnClick; }
From source file:android.support.design.widget.SwipeDismissBehavior.java
@Override public boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) { boolean dispatchEventToHelper = mInterceptingEvents; switch (MotionEventCompat.getActionMasked(event)) { case MotionEvent.ACTION_DOWN: mInterceptingEvents = parent.isPointInChildBounds(child, (int) event.getX(), (int) event.getY()); dispatchEventToHelper = mInterceptingEvents; break;//w ww .j a v a 2s. c o m case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: // Reset the ignore flag for next time mInterceptingEvents = false; break; } if (dispatchEventToHelper) { ensureViewDragHelper(parent); return mViewDragHelper.shouldInterceptTouchEvent(event); } return false; }
From source file:com.repkap11.repcast.queue.ui.QueueListAdapter.java
@Override public void onBindViewHolder(final QueueItemViewHolder holder, int position) { Log.d(TAG, "[upcoming] onBindViewHolder() for position: " + position); final MediaQueueItem item = mProvider.getItem(position); holder.mContainer.setTag(R.string.queue_tag_item, item); holder.mPlayPause.setTag(R.string.queue_tag_item, item); holder.mPlayUpcoming.setTag(R.string.queue_tag_item, item); holder.mStopUpcoming.setTag(R.string.queue_tag_item, item); // set listeners holder.mContainer.setOnClickListener(mItemViewOnClickListener); holder.mPlayPause.setOnClickListener(mItemViewOnClickListener); holder.mPlayUpcoming.setOnClickListener(mItemViewOnClickListener); holder.mStopUpcoming.setOnClickListener(mItemViewOnClickListener); MediaInfo info = item.getMedia();/* w w w . j a v a 2 s . c om*/ MediaMetadata metaData = info.getMetadata(); holder.mTitleView.setText(metaData.getString(MediaMetadata.KEY_TITLE)); holder.mDescriptionView.setText(metaData.getString(MediaMetadata.KEY_SUBTITLE)); AQuery aq = new AQuery(holder.itemView); if (!metaData.getImages().isEmpty()) { aq.id(holder.mImageView).width(64).image(metaData.getImages().get(0).getUrl().toString(), true, true, 0, R.drawable.default_video, null, 0, mAspectRatio); } holder.mDragHandle.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_DOWN) { mDragStartListener.onStartDrag(holder); } return false; } }); if (item == mProvider.getCurrentItem()) { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.CURRENT); updateImageResource(holder.mPlayPause); } else if (item == mProvider.getUpcomingItem()) { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.UPCOMING); } else { holder.updateControlsStatus(QueueItemViewHolder.ControlStatus.NONE); holder.mPlayPause.setVisibility(View.GONE); } }
From source file:CustomSwipeDismissBehavior.java
@Override public boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) { switch (MotionEventCompat.getActionMasked(event)) { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: // Reset the ignore flag if (mIgnoreEvents) { mIgnoreEvents = false;//from ww w.j av a 2 s .c om return false; } break; default: mIgnoreEvents = !parent.isPointInChildBounds(child, (int) event.getX(), (int) event.getY()); break; } if (mIgnoreEvents) { return false; } ensureViewDragHelper(parent); return mViewDragHelper.shouldInterceptTouchEvent(event); }