Calling stop() does not disable the animation fully and takes a lot of CPU. The stop method incorrectly calls start() instead of stop on the ballSizeAnimator:
public void stop() {
ballPathAnimator.stop();
if (sizeAnimationEnabled) {
ballSizeAnimator.start();
}
}