diff options
Diffstat (limited to 'src/com/android/datetimepicker/Utils.java')
-rw-r--r-- | src/com/android/datetimepicker/Utils.java | 25 |
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; + } } |