@SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(@NonNull MotionEvent event) { // performClick(); if (mRotateAnimationTask != null && mRotateAnimationTask.getStatus() == RUNNING) { return true; } float x = event.getX(); float y = event.getY(); // Log.e("pointerPosition>>", pointerPosition + ""); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mListener.onStartTrackingTouch(this); return moved(x, y, false); case MotionEvent.ACTION_MOVE: mListener.onStartTrackingTouch(this); return moved(x, y, false); case MotionEvent.ACTION_UP: mListener.onStopTrackingTouch(this); return moved(x, y, true); } return false; }
@Override public boolean onTouchEvent(MotionEvent event) { if (!isEnabled()) { return false; } switch (event.getAction()) { case MotionEvent.ACTION_DOWN: onChangeListener.onStartTrackingTouch(this); setPressed(true); setSelected(true); break; case MotionEvent.ACTION_MOVE: super.onTouchEvent(event); int progress = getMax() - (int) (getMax() * event.getY() / getHeight()); // Ensure progress stays within boundaries if (progress < 0) { progress = 0; } if (progress > getMax()) { progress = getMax(); } setProgress(progress); // Draw progress if (progress != lastProgress) { // Only enact listener if the progress has actually changed lastProgress = progress; onChangeListener.onProgressChanged(this, progress, true); } onSizeChanged(getWidth(), getHeight(), 0, 0); setPressed(true); setSelected(true); break; case MotionEvent.ACTION_UP: onChangeListener.onStopTrackingTouch(this); setPressed(false); setSelected(false); break; case MotionEvent.ACTION_CANCEL: super.onTouchEvent(event); setPressed(false); setSelected(false); break; } return true; }
@Override public boolean onTouchEvent(MotionEvent event) { String tag = "Seekbar"; Log.d(tag, event.toString()); Log.d(tag, "------------"); requestParentTouchRecursive(getParent(), true); if (!isEnabled()) { return false; } switch (event.getAction()) { case MotionEvent.ACTION_UP: onSeekBarChangeListener.onStopTrackingTouch(this); invalidate(); requestParentTouchRecursive(getParent(), false); break; case MotionEvent.ACTION_DOWN: onSeekBarChangeListener.onStartTrackingTouch(this); invalidate(); break; case MotionEvent.ACTION_MOVE: int pos = (int) (getMax() * event.getX() / getWidth()); Log.d(tag, "pos => " + pos); setProgress(pos); onSeekBarChangeListener.onProgressChanged(this, pos, true); // onSizeChanged(getWidth(), getHeight(), 0, 0); invalidate(); break; default: case MotionEvent.ACTION_CANCEL: onSeekBarChangeListener.onProgressChanged(this, getProgress(), true); requestParentTouchRecursive(getParent(), false); invalidate(); break; } return true; }
private void onStopTrackingTouch() { mIsDragging = false; if (mOnSeekBarChangeListener != null) { mOnSeekBarChangeListener.onStopTrackingTouch(this); } }
void onStopTrackingTouch() { if (mOnSeekBarChangeListener != null) { mOnSeekBarChangeListener.onStopTrackingTouch(this); } }