diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/PanoProgressBar.java | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/src/com/android/camera/PanoProgressBar.java b/src/com/android/camera/PanoProgressBar.java deleted file mode 100644 index 8dfb3660b..000000000 --- a/src/com/android/camera/PanoProgressBar.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (C) 2011 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.content.Context; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.RectF; -import android.util.AttributeSet; -import android.widget.ImageView; - -class PanoProgressBar extends ImageView { - @SuppressWarnings("unused") - private static final String TAG = "PanoProgressBar"; - public static final int DIRECTION_NONE = 0; - public static final int DIRECTION_LEFT = 1; - public static final int DIRECTION_RIGHT = 2; - private float mProgress = 0; - private float mMaxProgress = 0; - private float mLeftMostProgress = 0; - private float mRightMostProgress = 0; - private float mProgressOffset = 0; - private float mIndicatorWidth = 0; - private int mDirection = 0; - private final Paint mBackgroundPaint = new Paint(); - private final Paint mDoneAreaPaint = new Paint(); - private final Paint mIndicatorPaint = new Paint(); - private float mWidth; - private float mHeight; - private RectF mDrawBounds; - private OnDirectionChangeListener mListener = null; - - public interface OnDirectionChangeListener { - public void onDirectionChange(int direction); - } - - public PanoProgressBar(Context context, AttributeSet attrs) { - super(context, attrs); - mDoneAreaPaint.setStyle(Paint.Style.FILL); - mDoneAreaPaint.setAlpha(0xff); - - mBackgroundPaint.setStyle(Paint.Style.FILL); - mBackgroundPaint.setAlpha(0xff); - - mIndicatorPaint.setStyle(Paint.Style.FILL); - mIndicatorPaint.setAlpha(0xff); - - mDrawBounds = new RectF(); - } - - public void setOnDirectionChangeListener(OnDirectionChangeListener l) { - mListener = l; - } - - private void setDirection(int direction) { - if (mDirection != direction) { - mDirection = direction; - if (mListener != null) { - mListener.onDirectionChange(mDirection); - } - invalidate(); - } - } - - public int getDirection() { - return mDirection; - } - - @Override - public void setBackgroundColor(int color) { - mBackgroundPaint.setColor(color); - invalidate(); - } - - public void setDoneColor(int color) { - mDoneAreaPaint.setColor(color); - invalidate(); - } - - public void setIndicatorColor(int color) { - mIndicatorPaint.setColor(color); - invalidate(); - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - mWidth = w; - mHeight = h; - mDrawBounds.set(0, 0, mWidth, mHeight); - } - - public void setMaxProgress(int progress) { - mMaxProgress = progress; - } - - public void setIndicatorWidth(float w) { - mIndicatorWidth = w; - invalidate(); - } - - public void setRightIncreasing(boolean rightIncreasing) { - if (rightIncreasing) { - mLeftMostProgress = 0; - mRightMostProgress = 0; - mProgressOffset = 0; - setDirection(DIRECTION_RIGHT); - } else { - mLeftMostProgress = mWidth; - mRightMostProgress = mWidth; - mProgressOffset = mWidth; - setDirection(DIRECTION_LEFT); - } - invalidate(); - } - - public void setProgress(int progress) { - // The panning direction will be decided after user pan more than 10 degrees in one - // direction. - if (mDirection == DIRECTION_NONE) { - if (progress > 10) { - setRightIncreasing(true); - } else if (progress < -10) { - setRightIncreasing(false); - } - } - // mDirection might be modified by setRightIncreasing() above. Need to check again. - if (mDirection != DIRECTION_NONE) { - mProgress = progress * mWidth / mMaxProgress + mProgressOffset; - // value bounds. - mProgress = Math.min(mWidth, Math.max(0, mProgress)); - if (mDirection == DIRECTION_RIGHT) { - // The right most progress is adjusted. - mRightMostProgress = Math.max(mRightMostProgress, mProgress); - } - if (mDirection == DIRECTION_LEFT) { - // The left most progress is adjusted. - mLeftMostProgress = Math.min(mLeftMostProgress, mProgress); - } - invalidate(); - } - } - - public void reset() { - mProgress = 0; - mProgressOffset = 0; - setDirection(DIRECTION_NONE); - invalidate(); - } - - @Override - protected void onDraw(Canvas canvas) { - // the background - canvas.drawRect(mDrawBounds, mBackgroundPaint); - if (mDirection != DIRECTION_NONE) { - // the progress area - canvas.drawRect(mLeftMostProgress, mDrawBounds.top, mRightMostProgress, - mDrawBounds.bottom, mDoneAreaPaint); - // the indication bar - float l; - float r; - if (mDirection == DIRECTION_RIGHT) { - l = Math.max(mProgress - mIndicatorWidth, 0f); - r = mProgress; - } else { - l = mProgress; - r = Math.min(mProgress + mIndicatorWidth, mWidth); - } - canvas.drawRect(l, mDrawBounds.top, r, mDrawBounds.bottom, mIndicatorPaint); - } - - // draw the mask image on the top for shaping. - super.onDraw(canvas); - } -} |