diff options
Diffstat (limited to 'src/com/android/camera/AnimationManager.java')
-rw-r--r-- | src/com/android/camera/AnimationManager.java | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/com/android/camera/AnimationManager.java b/src/com/android/camera/AnimationManager.java deleted file mode 100644 index 5397ae02b..000000000 --- a/src/com/android/camera/AnimationManager.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (C) 2013 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.camera; - -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.view.View; - -/** - * Class to handle animations. - */ - -public class AnimationManager { - - public static final float FLASH_ALPHA_START = 0.3f; - public static final float FLASH_ALPHA_END = 0f; - public static final int FLASH_DURATION = 300; - - public static final int SHRINK_DURATION = 400; - public static final int HOLD_DURATION = 2500; - public static final int SLIDE_DURATION = 1100; - - private ObjectAnimator mFlashAnim; - private AnimatorSet mCaptureAnimator; - - /** - * Starts capture animation. - * @param view a thumbnail view that shows a picture captured and gets animated - */ - public void startCaptureAnimation(final View view) { - if (mCaptureAnimator != null && mCaptureAnimator.isStarted()) { - mCaptureAnimator.cancel(); - } - View parentView = (View) view.getParent(); - float slideDistance = (float) (parentView.getWidth() - view.getLeft()); - - float scaleX = ((float) parentView.getWidth()) / ((float) view.getWidth()); - float scaleY = ((float) parentView.getHeight()) / ((float) view.getHeight()); - float scale = scaleX > scaleY ? scaleX : scaleY; - - int centerX = view.getLeft() + view.getWidth() / 2; - int centerY = view.getTop() + view.getHeight() / 2; - - ObjectAnimator slide = ObjectAnimator.ofFloat(view, "translationX", 0f, slideDistance) - .setDuration(AnimationManager.SLIDE_DURATION); - slide.setStartDelay(AnimationManager.SHRINK_DURATION + AnimationManager.HOLD_DURATION); - - ObjectAnimator translateY = ObjectAnimator.ofFloat(view, "translationY", - parentView.getHeight() / 2 - centerY, 0f) - .setDuration(AnimationManager.SHRINK_DURATION); - translateY.addListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(Animator animator) { - // Do nothing. - } - - @Override - public void onAnimationEnd(Animator animator) { - view.setClickable(true); - } - - @Override - public void onAnimationCancel(Animator animator) { - // Do nothing. - } - - @Override - public void onAnimationRepeat(Animator animator) { - // Do nothing. - } - }); - - mCaptureAnimator = new AnimatorSet(); - mCaptureAnimator.playTogether( - ObjectAnimator.ofFloat(view, "scaleX", scale, 1f) - .setDuration(AnimationManager.SHRINK_DURATION), - ObjectAnimator.ofFloat(view, "scaleY", scale, 1f) - .setDuration(AnimationManager.SHRINK_DURATION), - ObjectAnimator.ofFloat(view, "translationX", - parentView.getWidth() / 2 - centerX, 0f) - .setDuration(AnimationManager.SHRINK_DURATION), - translateY, - slide); - mCaptureAnimator.addListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(Animator animator) { - view.setClickable(false); - view.setVisibility(View.VISIBLE); - } - - @Override - public void onAnimationEnd(Animator animator) { - view.setScaleX(1f); - view.setScaleX(1f); - view.setTranslationX(0f); - view.setTranslationY(0f); - view.setVisibility(View.INVISIBLE); - mCaptureAnimator.removeAllListeners(); - mCaptureAnimator = null; - } - - @Override - public void onAnimationCancel(Animator animator) { - view.setVisibility(View.INVISIBLE); - } - - @Override - public void onAnimationRepeat(Animator animator) { - // Do nothing. - } - }); - mCaptureAnimator.start(); - } - - /** - * Starts flash animation. - * @params flashOverlay the overlay that will animate on alpha to make the flash impression - */ - public void startFlashAnimation(final View flashOverlay) { - // End the previous animation if the previous one is still running - if (mFlashAnim != null && mFlashAnim.isRunning()) { - mFlashAnim.cancel(); - } - // Start new flash animation. - mFlashAnim = ObjectAnimator.ofFloat(flashOverlay, "alpha", - AnimationManager.FLASH_ALPHA_START, AnimationManager.FLASH_ALPHA_END); - mFlashAnim.setDuration(AnimationManager.FLASH_DURATION); - mFlashAnim.addListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(Animator animator) { - flashOverlay.setVisibility(View.VISIBLE); - } - - @Override - public void onAnimationEnd(Animator animator) { - flashOverlay.setAlpha(0f); - flashOverlay.setVisibility(View.GONE); - mFlashAnim.removeAllListeners(); - mFlashAnim = null; - } - - @Override - public void onAnimationCancel(Animator animator) { - // Do nothing. - } - - @Override - public void onAnimationRepeat(Animator animator) { - // Do nothing. - } - }); - mFlashAnim.start(); - } - - /** - * Cancels on-going flash animation and capture animation, if any. - */ - public void cancelAnimations() { - // End the previous animation if the previous one is still running - if (mFlashAnim != null && mFlashAnim.isRunning()) { - mFlashAnim.cancel(); - } - if (mCaptureAnimator != null && mCaptureAnimator.isStarted()) { - mCaptureAnimator.cancel(); - } - } -} |