| /* |
| * 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.ui; |
| |
| import android.content.Context; |
| import android.graphics.Canvas; |
| import android.graphics.RectF; |
| import android.util.AttributeSet; |
| import android.view.View; |
| import android.widget.FrameLayout; |
| |
| /** |
| * ProgressOverlay is a view that sits under the PreviewOverlay. |
| * It does not respond to touch events, and only serves to show a |
| * centered progress bar. |
| */ |
| public class ProgressOverlay extends View { |
| private final ProgressRenderer mProgressRenderer; |
| private int mCenterX; |
| private int mCenterY; |
| |
| /** |
| * Intialize a new ProgressOverlay with a ProgressRenderer. |
| */ |
| public ProgressOverlay(Context context, AttributeSet attrs) { |
| super(context, attrs); |
| mProgressRenderer = new ProgressRenderer(context, this); |
| } |
| |
| @Override |
| public void onLayout(boolean changed, int left, int top, int right, int bottom) { |
| super.onLayout(changed, left, top, right, bottom); |
| if (changed) { |
| mCenterX = (right - left) / 2; |
| mCenterY = (bottom - top) / 2; |
| } |
| } |
| |
| /** |
| * Reposition the view within a given set of bounds, defined by a |
| * {@link android.graphics.RectF}. |
| */ |
| public void setBounds(RectF area) { |
| if (area.width() > 0 && area.height() > 0) { |
| FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) getLayoutParams(); |
| params.width = (int) area.width(); |
| params.height= (int) area.height(); |
| params.setMargins((int) area.left, (int) area.top, 0, 0); |
| setLayoutParams(params); |
| } |
| } |
| |
| @Override |
| public void onDraw(Canvas canvas) { |
| mProgressRenderer.onDraw(canvas, mCenterX, mCenterY); |
| } |
| |
| /** |
| * Set the progress state as a percent from 0-100. |
| */ |
| public void setProgress(int percent) { |
| mProgressRenderer.setProgress(percent); |
| } |
| } |