summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/SwitchAnimManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/SwitchAnimManager.java')
-rw-r--r--src/com/android/camera/SwitchAnimManager.java146
1 files changed, 0 insertions, 146 deletions
diff --git a/src/com/android/camera/SwitchAnimManager.java b/src/com/android/camera/SwitchAnimManager.java
deleted file mode 100644
index 20a4bfd97..000000000
--- a/src/com/android/camera/SwitchAnimManager.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2012 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.os.SystemClock;
-import android.util.Log;
-
-import com.android.camera.support.glrenderer.GLCanvas;
-import com.android.camera.support.glrenderer.RawTexture;
-
-/**
- * Class to handle the animation when switching between back and front cameras.
- * An image of the previous camera zooms in and fades out. The preview of the
- * new camera zooms in and fades in. The image of the previous camera is called
- * review in this class.
- */
-public class SwitchAnimManager {
- private static final String TAG = "SwitchAnimManager";
- // The amount of change for zooming in and out.
- private static final float ZOOM_DELTA_PREVIEW = 0.2f;
- private static final float ZOOM_DELTA_REVIEW = 0.5f;
- private static final float ANIMATION_DURATION = 400; // ms
- public static final float INITIAL_DARKEN_ALPHA = 0.8f;
-
- private long mAnimStartTime; // milliseconds.
- // The drawing width and height of the review image. This is saved when the
- // texture is copied.
- private int mReviewDrawingWidth;
- private int mReviewDrawingHeight;
- // The maximum width of the camera screen nail width from onDraw. We need to
- // know how much the preview is scaled and scale the review the same amount.
- // For example, the preview is not full screen in film strip mode.
- private int mPreviewFrameLayoutWidth;
-
- public SwitchAnimManager() {
- }
-
- public void setReviewDrawingSize(int width, int height) {
- mReviewDrawingWidth = width;
- mReviewDrawingHeight = height;
- }
-
- // width: the width of PreviewFrameLayout view.
- // height: the height of PreviewFrameLayout view. Not used. Kept for
- // consistency.
- public void setPreviewFrameLayoutSize(int width, int height) {
- mPreviewFrameLayoutWidth = width;
- }
-
- // w and h: the rectangle area where the animation takes place.
- public void startAnimation() {
- mAnimStartTime = SystemClock.uptimeMillis();
- }
-
- // Returns true if the animation has been drawn.
- // preview: camera preview view.
- // review: snapshot of the preview before switching the camera.
- public boolean drawAnimation(GLCanvas canvas, int x, int y, int width,
- int height, CameraScreenNail preview, RawTexture review) {
- long timeDiff = SystemClock.uptimeMillis() - mAnimStartTime;
- if (timeDiff > ANIMATION_DURATION) return false;
- float fraction = timeDiff / ANIMATION_DURATION;
-
- // Calculate the position and the size of the preview.
- float centerX = x + width / 2f;
- float centerY = y + height / 2f;
- float previewAnimScale = 1 - ZOOM_DELTA_PREVIEW * (1 - fraction);
- float previewWidth = width * previewAnimScale;
- float previewHeight = height * previewAnimScale;
- int previewX = Math.round(centerX - previewWidth / 2);
- int previewY = Math.round(centerY - previewHeight / 2);
-
- // Calculate the position and the size of the review.
- float reviewAnimScale = 1 + ZOOM_DELTA_REVIEW * fraction;
-
- // Calculate how much preview is scaled.
- // The scaling is done by PhotoView in Gallery so we don't have the
- // scaling information but only the width and the height passed to this
- // method. The inference of the scale ratio is done by matching the
- // current width and the original width we have at first when the camera
- // layout is inflated.
- float scaleRatio = 1;
- if (mPreviewFrameLayoutWidth != 0) {
- scaleRatio = (float) width / mPreviewFrameLayoutWidth;
- } else {
- Log.e(TAG, "mPreviewFrameLayoutWidth is 0.");
- }
- float reviewWidth = mReviewDrawingWidth * reviewAnimScale * scaleRatio;
- float reviewHeight = mReviewDrawingHeight * reviewAnimScale * scaleRatio;
- int reviewX = Math.round(centerX - reviewWidth / 2);
- int reviewY = Math.round(centerY - reviewHeight / 2);
-
- // Draw the preview.
- float alpha = canvas.getAlpha();
- canvas.setAlpha(fraction); // fade in
- preview.directDraw(canvas, previewX, previewY, Math.round(previewWidth),
- Math.round(previewHeight));
-
- // Draw the review.
- canvas.setAlpha((1f - fraction) * INITIAL_DARKEN_ALPHA); // fade out
- review.draw(canvas, reviewX, reviewY, Math.round(reviewWidth),
- Math.round(reviewHeight));
- canvas.setAlpha(alpha);
- return true;
- }
-
- public boolean drawDarkPreview(GLCanvas canvas, int x, int y, int width,
- int height, RawTexture review) {
- // Calculate the position and the size.
- float centerX = x + width / 2f;
- float centerY = y + height / 2f;
- float scaleRatio = 1;
- if (mPreviewFrameLayoutWidth != 0) {
- scaleRatio = (float) width / mPreviewFrameLayoutWidth;
- } else {
- Log.e(TAG, "mPreviewFrameLayoutWidth is 0.");
- }
- float reviewWidth = mReviewDrawingWidth * scaleRatio;
- float reviewHeight = mReviewDrawingHeight * scaleRatio;
- int reviewX = Math.round(centerX - reviewWidth / 2);
- int reviewY = Math.round(centerY - reviewHeight / 2);
-
- // Draw the review.
- float alpha = canvas.getAlpha();
- canvas.setAlpha(INITIAL_DARKEN_ALPHA);
- review.draw(canvas, reviewX, reviewY, Math.round(reviewWidth),
- Math.round(reviewHeight));
- canvas.setAlpha(alpha);
- return true;
- }
-
-}