summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LogDecelerateInterpolator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/LogDecelerateInterpolator.java')
-rw-r--r--src/com/android/launcher3/LogDecelerateInterpolator.java26
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;
+ }
+}