package it.sephiroth.android.library.easing; public class Expo implements Easing { @Override public double easeOut(double time, double start, double end, double duration) { return (time == duration) ? start + end : end * (-Math.pow(2.0, -10.0 * time / duration) + 1) + start; } @Override public double easeIn(double time, double start, double end, double duration) { return (time == 0) ? start : end * Math.pow(2.0, 10.0 * (time / duration - 1.0)) + start; } @Override public double easeInOut(double time, double start, double end, double duration) { if (time == 0) return start; if (time == duration) return start + end; if ((time /= duration / 2.0) < 1.0) return end / 2.0 * Math.pow(2.0, 10.0 * (time - 1.0)) + start; return end / 2.0 * (-Math.pow(2.0, -10.0 * --time) + 2.0) + start; } }