diff options
Diffstat (limited to 'src/com/android/launcher3/LogDecelerateInterpolator.java')
-rw-r--r-- | src/com/android/launcher3/LogDecelerateInterpolator.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LogDecelerateInterpolator.java b/src/com/android/launcher3/LogDecelerateInterpolator.java new file mode 100644 index 000000000..4c5f6f08c --- /dev/null +++ b/src/com/android/launcher3/LogDecelerateInterpolator.java @@ -0,0 +1,26 @@ +package com.android.launcher3; + +import android.animation.TimeInterpolator; + +public class LogDecelerateInterpolator implements TimeInterpolator { + + int mBase; + int mDrift; + final float mLogScale; + + public LogDecelerateInterpolator(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 computeLog(t, mBase, mDrift) * mLogScale; + } +} |