summaryrefslogtreecommitdiff
path: root/src/com/android/datetimepicker/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/datetimepicker/Utils.java')
-rw-r--r--src/com/android/datetimepicker/Utils.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/datetimepicker/Utils.java b/src/com/android/datetimepicker/Utils.java
index 9bc5952..ae3087b 100644
--- a/src/com/android/datetimepicker/Utils.java
+++ b/src/com/android/datetimepicker/Utils.java
@@ -16,8 +16,12 @@
package com.android.datetimepicker;
+import android.animation.Keyframe;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
import android.os.Build;
import android.text.format.Time;
+import android.view.View;
import java.util.Calendar;
@@ -27,6 +31,7 @@ import java.util.Calendar;
public class Utils {
public static final int MONDAY_BEFORE_JULIAN_EPOCH = Time.EPOCH_JULIAN_DAY - 3;
+ public static final int PULSE_ANIMATOR_DURATION = 600;
static final String SHARED_PREFS_NAME = "com.android.calendar_preferences";
@@ -92,4 +97,24 @@ public class Utils {
int refDay = Time.EPOCH_JULIAN_DAY - diff;
return (julianDay - refDay) / 7;
}
+
+ /**
+ * Render an animator to pulsate a view in place.
+ * @param labelToAnimate the view to pulsate.
+ * @return The animator object. Use .start() to begin.
+ */
+ public static ObjectAnimator getPulseAnimator(View labelToAnimate) {
+ Keyframe k0 = Keyframe.ofFloat(0f, 1f);
+ Keyframe k1 = Keyframe.ofFloat(0.25f, 0.85f);
+ Keyframe k2 = Keyframe.ofFloat(0.625f, 1.1f);
+ Keyframe k3 = Keyframe.ofFloat(1f, 1f);
+
+ PropertyValuesHolder scaleX = PropertyValuesHolder.ofKeyframe("scaleX", k0, k1, k2, k3);
+ PropertyValuesHolder scaleY = PropertyValuesHolder.ofKeyframe("scaleY", k0, k1, k2, k3);
+ ObjectAnimator pulseAnimator =
+ ObjectAnimator.ofPropertyValuesHolder(labelToAnimate, scaleX, scaleY);
+ pulseAnimator.setDuration(PULSE_ANIMATOR_DURATION);
+
+ return pulseAnimator;
+ }
}