diff options
Diffstat (limited to 'src/com/android/launcher3/LogAccelerateInterpolator.java')
-rw-r--r-- | src/com/android/launcher3/LogAccelerateInterpolator.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LogAccelerateInterpolator.java b/src/com/android/launcher3/LogAccelerateInterpolator.java new file mode 100644 index 000000000..c3bbfa536 --- /dev/null +++ b/src/com/android/launcher3/LogAccelerateInterpolator.java @@ -0,0 +1,25 @@ +package com.android.launcher3; + +import android.animation.TimeInterpolator; + +public class LogAccelerateInterpolator implements TimeInterpolator { + + int mBase; + int mDrift; + final float mLogScale; + + public LogAccelerateInterpolator(int base, int drift) { + mBase = base; + mDrift = drift; + mLogScale = 1f / computeLog(1, mBase, mDrift); + } + + static float computeLog(float t, int base, int drift) { + return (float) -Math.pow(base, -t) + 1 + (drift * t); + } + + @Override + public float getInterpolation(float t) { + return 1 - computeLog(1 - t, mBase, mDrift) * mLogScale; + } +} |