diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2015-03-10 14:36:43 -0700 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2015-03-10 14:36:43 -0700 |
commit | 27e7ac7fb418e278b2e7700f2d65b2bbaeb1c256 (patch) | |
tree | a39df698de8e8e05fd5ca336801bf6ae4b93f14a | |
parent | 4a542d96a9ce1fc8b567eb853dac0baea64505a1 (diff) | |
download | pdk-27e7ac7fb418e278b2e7700f2d65b2bbaeb1c256.tar.gz |
camera2: Add HDR toggle to testing camera.
Change-Id: I68910e4d38f42d6b91b2fe2683519515a40d672a
-rw-r--r-- | apps/TestingCamera/res/layout/main.xml | 10 | ||||
-rw-r--r-- | apps/TestingCamera/res/values/strings.xml | 2 | ||||
-rw-r--r-- | apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java | 35 |
3 files changed, 47 insertions, 0 deletions
diff --git a/apps/TestingCamera/res/layout/main.xml b/apps/TestingCamera/res/layout/main.xml index a52c0ef..a4cd6b5 100644 --- a/apps/TestingCamera/res/layout/main.xml +++ b/apps/TestingCamera/res/layout/main.xml @@ -140,6 +140,16 @@ android:layout_weight="1" /> <ToggleButton + android:id="@+id/hdr_mode" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_weight="1" + android:textColorLink="@android:color/holo_blue_light" + android:textOff="@string/hdr_off_label" + android:textOn="@string/hdr_on_label" /> + + <ToggleButton android:id="@+id/start_preview" android:layout_width="fill_parent" android:layout_height="wrap_content" diff --git a/apps/TestingCamera/res/values/strings.xml b/apps/TestingCamera/res/values/strings.xml index 956b622..5b0345e 100644 --- a/apps/TestingCamera/res/values/strings.xml +++ b/apps/TestingCamera/res/values/strings.xml @@ -18,7 +18,9 @@ <resources> <string name="app_name">TestingCam</string> + <string name="hdr_on_label">HDR On</string> <string name="preview_on_label">Preview On</string> + <string name="hdr_off_label">HDR Off</string> <string name="preview_off_label">Preview Off</string> <string name="take_picture_label">Take picture</string> <string name="preview_resolution_prompt">Preview size</string> diff --git a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java index 70e8835..e5ecd0c 100644 --- a/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java +++ b/apps/TestingCamera/src/com/android/testingcamera/TestingCamera.java @@ -89,6 +89,7 @@ public class TestingCamera extends Activity private Spinner mPreviewSizeSpinner; private Spinner mPreviewFrameRateSpinner; private ToggleButton mPreviewToggle; + private ToggleButton mHDRToggle; private Spinner mAutofocusModeSpinner; private Button mAutofocusButton; private Button mCancelAutofocusButton; @@ -205,6 +206,10 @@ public class TestingCamera extends Activity mPreviewFrameRateSpinner.setOnItemSelectedListener(mPreviewFrameRateListener); mOpenOnlyControls.add(mPreviewFrameRateSpinner); + mHDRToggle = (ToggleButton) findViewById(R.id.hdr_mode); + mHDRToggle.setOnClickListener(mHDRToggleListener); + mOpenOnlyControls.add(mHDRToggle); + mPreviewToggle = (ToggleButton) findViewById(R.id.start_preview); mPreviewToggle.setOnClickListener(mPreviewToggleListener); mOpenOnlyControls.add(mPreviewToggle); @@ -536,6 +541,26 @@ public class TestingCamera extends Activity } }; + private View.OnClickListener mHDRToggleListener = + new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mState == CAMERA_TAKE_PICTURE) { + logE("Can't change preview state while taking picture!"); + return; + } + + if (mHDRToggle.isChecked()) { + log("Turning on HDR"); + mParams.setSceneMode(Camera.Parameters.SCENE_MODE_HDR); + } else { + log("Turning off HDR"); + mParams.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO); + } + mCamera.setParameters(mParams); + } + }; + private View.OnClickListener mPreviewToggleListener = new View.OnClickListener() { @Override @@ -936,6 +961,16 @@ public class TestingCamera extends Activity setCameraDisplayOrientation(); mParams = mCamera.getParameters(); + if (mParams != null) { + List<String> sceneModes = mParams.getSupportedSceneModes(); + for (String mode : sceneModes) { + if (Camera.Parameters.SCENE_MODE_HDR.equals(mode)){ + mHDRToggle.setEnabled(true); + } else { + mHDRToggle.setEnabled(false); + } + } + } // Set up preview size selection |