@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { float globalPositionOffsetPixels = position * (dotsStrokeSize + dotsSpacing * 2) + (dotsStrokeSize + dotsSpacing * 2) * positionOffset; float indicatorTranslationX = globalPositionOffsetPixels + horizontalMargin + dotsStrokeWidth - dotIndicatorAdditionalSize / 2f; dotIndicatorSpring.getSpring().setFinalPosition(indicatorTranslationX); dotIndicatorSpring.animateToFinalPosition(indicatorTranslationX); }
@Override public void onAnimationUpdate(DynamicAnimation dynamicAnimation, float value, float velocity) { animate2X.animateToFinalPosition(value); } });
@Override public void onAnimationUpdate(DynamicAnimation dynamicAnimation, float value, float velocity) { animate2Y.animateToFinalPosition(value); } });
@Override public void onAnimationUpdate(DynamicAnimation animation, float value, float velocity) { animSecondFollowerX.animateToFinalPosition(value); } });
@Override public void onAnimationUpdate(DynamicAnimation animation, float value, float velocity) { animSecondFollowerY.animateToFinalPosition(value); } });
@Override public boolean onTouch(View v, MotionEvent motionEvent) { if (motionEvent.getActionMasked() == MotionEvent.ACTION_MOVE) { float deltaX = motionEvent.getRawX() - lastX; float deltaY = motionEvent.getRawY() - lastY; mViewLead.setTranslationX(deltaX + mViewLead.getTranslationX()); mViewLead.setTranslationY(deltaY + mViewLead.getTranslationY()); animFirstFollowerX.animateToFinalPosition(mViewLead.getTranslationX()); animFirstFollowerY.animateToFinalPosition(mViewLead.getTranslationY()); } lastX = motionEvent.getRawX(); lastY = motionEvent.getRawY(); return true; } });
spring.setStartVelocity(velocity).animateToFinalPosition(restrictionRect.left + horizontalDiff); } else if (afterRect.right < restrictionRect.right) { cancel(); spring.setStartVelocity(velocity).animateToFinalPosition(restrictionRect.right - target.getWidth() - horizontalDiff);
@Override public boolean onTouch(View view, MotionEvent motionEvent) { if (motionEvent.getActionMasked() == MotionEvent.ACTION_DOWN) { if (motionEvent.getX() < lead.getX() || motionEvent.getX() > lead.getX() + lead.getWidth() || motionEvent.getY() < lead.getY() || motionEvent.getY() > lead.getY() + lead.getHeight()) { return false; } animate1X.getSpring().setDampingRatio(mDampingRatio).setStiffness(mStiffness); animate1Y.getSpring().setDampingRatio(mDampingRatio).setStiffness(mStiffness); animate2X.getSpring().setDampingRatio(mDampingRatio).setStiffness(mStiffness); animate2Y.getSpring().setDampingRatio(mDampingRatio).setStiffness(mStiffness); firstDownX = motionEvent.getX() - lead.getTranslationX(); firstDownY = motionEvent.getY() - lead.getTranslationY(); } else if (motionEvent.getActionMasked() == MotionEvent.ACTION_MOVE) { float deltaX = motionEvent.getX() - firstDownX; float deltaY = motionEvent.getY() - firstDownY; lead.setTranslationX(deltaX); lead.setTranslationY(deltaY); animate1X.animateToFinalPosition(deltaX); animate1Y.animateToFinalPosition(deltaY); } return true; } });
spring.setStartVelocity(velocity).animateToFinalPosition(restrictionRect.top + verticalDiff); } else if (afterRect.bottom < restrictionRect.bottom) { cancel(); spring.setStartVelocity(velocity).animateToFinalPosition(restrictionRect.bottom - target.getHeight() - verticalDiff);