aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Ray <aray@google.com>2013-11-25 12:56:01 -0800
committerAlex Ray <aray@google.com>2013-11-25 13:59:26 -0800
commit7608c20fef0bbbdcfdb0cc491d38e92435688bed (patch)
tree19eb4d5132f586458844cd533e97a21ed3003b3c
parent186ba3ae105b2b9439c512df252a44179666f650 (diff)
downloadpdk-7608c20fef0bbbdcfdb0cc491d38e92435688bed.tar.gz
TestingCamera: Add zoom control
Change-Id: I1849902d5a33e9cfd91e575fede2858aa3d28cb1
-rw-r--r--apps/TestingCamera/res/layout/main.xml16
-rw-r--r--apps/TestingCamera/res/values/strings.xml1
-rw-r--r--apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java34
3 files changed, 51 insertions, 0 deletions
diff --git a/apps/TestingCamera/res/layout/main.xml b/apps/TestingCamera/res/layout/main.xml
index 8853902..cf9843f 100644
--- a/apps/TestingCamera/res/layout/main.xml
+++ b/apps/TestingCamera/res/layout/main.xml
@@ -221,6 +221,22 @@
android:textOff="@string/exposure_lock_off_label"
android:textOn="@string/exposure_lock_on_label" />
+ <TextView
+ android:id="@+id/zoom_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/zoom_label"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
+
+ <SeekBar
+ android:id="@+id/zoom_seekbar"
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:progress="0"
+ style="?android:attr/progressBarStyleHorizontal" />
+
<View
android:id="@+id/horizontal_rule_3"
android:layout_width="fill_parent"
diff --git a/apps/TestingCamera/res/values/strings.xml b/apps/TestingCamera/res/values/strings.xml
index af5ad7f..be5b79c 100644
--- a/apps/TestingCamera/res/values/strings.xml
+++ b/apps/TestingCamera/res/values/strings.xml
@@ -56,4 +56,5 @@
<string name="keep_open_prompt">Keep open on exit</string>
<string name="record_handoff_prompt">No camera recording handoff</string>
<string name="color_effect_prompt">Color Effect</string>
+ <string name="zoom_label">Zoom</string>
</resources>
diff --git a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java
index ef43010..09a522c 100644
--- a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java
+++ b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java
@@ -43,6 +43,7 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
+import android.widget.SeekBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.ToggleButton;
@@ -106,6 +107,7 @@ public class TestingCamera extends Activity
private ToggleButton mCallbackToggle;
private TextView mColorEffectSpinnerLabel;
private Spinner mColorEffectSpinner;
+ private SeekBar mZoomSeekBar;
private TextView mLogView;
@@ -138,6 +140,7 @@ public class TestingCamera extends Activity
private int mVideoFrameRate = 0;
private List<String> mColorEffects;
private int mColorEffect = 0;
+ private int mZoom = 0;
private MediaRecorder mRecorder;
private File mRecordingFile;
@@ -226,6 +229,9 @@ public class TestingCamera extends Activity
mExposureLockToggle.setOnClickListener(mExposureLockToggleListener);
mOpenOnlyControls.add(mExposureLockToggle);
+ mZoomSeekBar = (SeekBar) findViewById(R.id.zoom_seekbar);
+ mZoomSeekBar.setOnSeekBarChangeListener(mZoomSeekBarListener);
+
mSnapshotSizeSpinner = (Spinner) findViewById(R.id.snapshot_size_spinner);
mSnapshotSizeSpinner.setOnItemSelectedListener(mSnapshotSizeListener);
mOpenOnlyControls.add(mSnapshotSizeSpinner);
@@ -901,6 +907,16 @@ public class TestingCamera extends Activity
mExposureLockToggle.setEnabled(false);
}
+ if (mParams.isZoomSupported()) {
+ int maxZoom = mParams.getMaxZoom();
+ mZoomSeekBar.setMax(maxZoom);
+ log("Zoom is supported, set max to " + maxZoom);
+ mZoomSeekBar.setEnabled(true);
+ } else {
+ log("Zoom is not supported");
+ mZoomSeekBar.setEnabled(false);
+ }
+
// Update parameters based on above updates
mCamera.setParameters(mParams);
@@ -987,6 +1003,24 @@ public class TestingCamera extends Activity
}
};
+ private final SeekBar.OnSeekBarChangeListener mZoomSeekBarListener =
+ new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress,
+ boolean fromUser) {
+ mZoom = progress;
+ mParams.setZoom(mZoom);
+ mCamera.setParameters(mParams);
+ }
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) { }
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ log("Zoom set to " + mZoom + " / " + mParams.getMaxZoom() + " (" +
+ ((float)(mParams.getZoomRatios().get(mZoom))/100) + "x)");
+ }
+ };
+
private void updatePreviewSizes(Camera.Parameters params) {
mPreviewSizes = params.getSupportedPreviewSizes();