@Override public void onAnimationEnd(Animator animation) { chart.setCurrentViewport(targetViewport); animationListener.onAnimationFinished(); }
@Override public void cancelAnimation() { isAnimationStarted = false; handler.removeCallbacks(runnable); chart.setCurrentViewport(targetViewport); animationListener.onAnimationFinished(); }
@Override public void onAnimationUpdate(ValueAnimator animation) { float scale = animation.getAnimatedFraction(); float diffLeft = (targetViewport.left - startViewport.left) * scale; float diffTop = (targetViewport.top - startViewport.top) * scale; float diffRight = (targetViewport.right - startViewport.right) * scale; float diffBottom = (targetViewport.bottom - startViewport.bottom) * scale; newViewport.set(startViewport.left + diffLeft, startViewport.top + diffTop, startViewport.right + diffRight, startViewport.bottom + diffBottom); chart.setCurrentViewport(newViewport); }