summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/anim/Animation.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/anim/Animation.java')
-rw-r--r--src/com/android/gallery3d/anim/Animation.java92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/com/android/gallery3d/anim/Animation.java b/src/com/android/gallery3d/anim/Animation.java
deleted file mode 100644
index cc117bbce..000000000
--- a/src/com/android/gallery3d/anim/Animation.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.gallery3d.anim;
-
-import android.view.animation.Interpolator;
-
-import com.android.gallery3d.common.Utils;
-
-// Animation calculates a value according to the current input time.
-//
-// 1. First we need to use setDuration(int) to set the duration of the
-// animation. The duration is in milliseconds.
-// 2. Then we should call start(). The actual start time is the first value
-// passed to calculate(long).
-// 3. Each time we want to get an animation value, we call
-// calculate(long currentTimeMillis) to ask the Animation to calculate it.
-// The parameter passed to calculate(long) should be nonnegative.
-// 4. Use get() to get that value.
-//
-// In step 3, onCalculate(float progress) is called so subclasses can calculate
-// the value according to progress (progress is a value in [0,1]).
-//
-// Before onCalculate(float) is called, There is an optional interpolator which
-// can change the progress value. The interpolator can be set by
-// setInterpolator(Interpolator). If the interpolator is used, the value passed
-// to onCalculate may be (for example, the overshoot effect).
-//
-// The isActive() method returns true after the animation start() is called and
-// before calculate is passed a value which reaches the duration of the
-// animation.
-//
-// The start() method can be called again to restart the Animation.
-//
-abstract public class Animation {
- private static final long ANIMATION_START = -1;
- private static final long NO_ANIMATION = -2;
-
- private long mStartTime = NO_ANIMATION;
- private int mDuration;
- private Interpolator mInterpolator;
-
- public void setInterpolator(Interpolator interpolator) {
- mInterpolator = interpolator;
- }
-
- public void setDuration(int duration) {
- mDuration = duration;
- }
-
- public void start() {
- mStartTime = ANIMATION_START;
- }
-
- public void setStartTime(long time) {
- mStartTime = time;
- }
-
- public boolean isActive() {
- return mStartTime != NO_ANIMATION;
- }
-
- public void forceStop() {
- mStartTime = NO_ANIMATION;
- }
-
- public boolean calculate(long currentTimeMillis) {
- if (mStartTime == NO_ANIMATION) return false;
- if (mStartTime == ANIMATION_START) mStartTime = currentTimeMillis;
- int elapse = (int) (currentTimeMillis - mStartTime);
- float x = Utils.clamp((float) elapse / mDuration, 0f, 1f);
- Interpolator i = mInterpolator;
- onCalculate(i != null ? i.getInterpolation(x) : x);
- if (elapse >= mDuration) mStartTime = NO_ANIMATION;
- return mStartTime != NO_ANIMATION;
- }
-
- abstract protected void onCalculate(float progress);
-}