diff options
| author | Wu-cheng Li <wuchengli@google.com> | 2010-06-04 14:18:16 +0800 |
|---|---|---|
| committer | Wu-cheng Li <wuchengli@google.com> | 2010-06-11 14:57:07 +0800 |
| commit | 186ff08e71d106e329171055accd4395760495ea (patch) | |
| tree | b5cbb1574e2ee36c0516fc16852dc6c7458ed651 | |
| parent | 1c3631accb0068a0a96cfd338820e6a7a61426f9 (diff) | |
| download | LegacyCamera-186ff08e71d106e329171055accd4395760495ea.zip LegacyCamera-186ff08e71d106e329171055accd4395760495ea.tar.gz LegacyCamera-186ff08e71d106e329171055accd4395760495ea.tar.bz2 | |
Add metering mode support.
Change-Id: I8b964df4534da0b393479baddabfc85ce1b09b2f
| -rw-r--r-- | res/values/arrays.xml | 13 | ||||
| -rw-r--r-- | res/values/strings.xml | 13 | ||||
| -rw-r--r-- | res/xml/camera_preferences.xml | 6 | ||||
| -rw-r--r-- | src/com/android/camera/Camera.java | 8 | ||||
| -rw-r--r-- | src/com/android/camera/CameraSettings.java | 7 | ||||
| -rw-r--r-- | src/com/android/camera/ui/CameraHeadUpDisplay.java | 3 |
6 files changed, 48 insertions, 2 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 2299935..473fb47 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -261,5 +261,18 @@ <string-array name="pref_camera_quickcapture_entryvalues" translatable="false"> <item>off</item> <item>on</item> + </string-array> + + <!-- Camera Preferences metering mode dialog box entries --> + <string-array name="pref_camera_meteringmode_entries" translatable="false"> + <item>@string/pref_camera_meteringmode_entry_center_weighted</item> + <item>@string/pref_camera_meteringmode_entry_spot</item> + <item>@string/pref_camera_meteringmode_entry_frame_average</item> + </string-array> + + <string-array name="pref_camera_meteringmode_entryvalues" translatable="false"> + <item>center-weighted</item> + <item>frame-average</item> + <item>spot</item> </string-array> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 1bfe813..dea9ea5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -167,7 +167,7 @@ <!-- Settings screen, Flash mode title --> <string name="pref_camera_flashmode_title">Flash mode</string> - <!-- Settings screen, Focue mode dialog radio button choices --> + <!-- Settings screen, Flash mode dialog radio button choices --> <string name="pref_camera_flashmode_entry_auto">Auto</string> <string name="pref_camera_flashmode_entry_on">On</string> <string name="pref_camera_flashmode_entry_off">Off</string> @@ -254,6 +254,17 @@ <string name="pref_exposure_title">Exposure</string> <string name="pref_exposure_default" translatable="false">0</string> + <!-- Default metering mode setting.--> + <string name="pref_camera_meteringmode_default" translatable="false">center-weighted</string> + + <!-- Settings screen, Metering mode title --> + <string name="pref_camera_meteringmode_title">Metering mode</string> + + <!-- Settings screen, Metering mode dialog radio button choices --> + <string name="pref_camera_meteringmode_entry_center_weighted">Center Weighted</string> + <string name="pref_camera_meteringmode_entry_frame_average">Frame Average</string> + <string name="pref_camera_meteringmode_entry_spot">Spot</string> + <!-- Framing grid settings in preference --> <!-- Message to show when there's no lat/lng information in the image --> diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml index c70c253..96eff91 100644 --- a/res/xml/camera_preferences.xml +++ b/res/xml/camera_preferences.xml @@ -81,5 +81,11 @@ camera:title="@string/pref_camera_quickcapture_title" camera:entries="@array/pref_camera_quickcapture_entries" camera:entryValues="@array/pref_camera_quickcapture_entryvalues" /> + <ListPreference + camera:key="pref_camera_meteringmode_key" + camera:defaultValue="@string/pref_camera_meteringmode_default" + camera:title="@string/pref_camera_meteringmode_title" + camera:entries="@array/pref_camera_meteringmode_entries" + camera:entryValues="@array/pref_camera_meteringmode_entryvalues" /> </PreferenceGroup> </PreferenceGroup> diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 1f18dd6..c67f093 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -1871,6 +1871,14 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, } else { mFocusMode = mParameters.getFocusMode(); } + + // Set metering mode parameter. + String meteringMode = mPreferences.getString( + CameraSettings.KEY_METERING_MODE, + getString(R.string.pref_camera_meteringmode_default)); + if (isSupported(meteringMode, mParameters.getSupportedMeteringModes())) { + mParameters.setMeteringMode(meteringMode); + } } // We separate the parameters into several subsets, so we can update only diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java index 5abe73c..b32f077 100644 --- a/src/com/android/camera/CameraSettings.java +++ b/src/com/android/camera/CameraSettings.java @@ -47,6 +47,7 @@ public class CameraSettings { public static final String KEY_SCENE_MODE = "pref_camera_scenemode_key"; public static final String KEY_QUICK_CAPTURE = "pref_camera_quickcapture_key"; public static final String KEY_EXPOSURE = "pref_camera_exposure_key"; + public static final String KEY_METERING_MODE = "pref_camera_meteringmode_key"; public static final String QUICK_CAPTURE_ON = "on"; public static final String QUICK_CAPTURE_OFF = "off"; @@ -139,6 +140,8 @@ public class CameraSettings { ListPreference exposure = group.findPreference(KEY_EXPOSURE); ListPreference videoFlashMode = group.findPreference(KEY_VIDEOCAMERA_FLASH_MODE); + ListPreference meteringMode = + group.findPreference(KEY_METERING_MODE); // Since the screen could be loaded from different resources, we need // to check if the preference is available here @@ -186,6 +189,10 @@ public class CameraSettings { filterUnsupportedOptions(group, videoFlashMode, mParameters.getSupportedFlashModes()); } + if (meteringMode != null) { + filterUnsupportedOptions(group, + meteringMode, mParameters.getSupportedMeteringModes()); + } if (exposure != null) { buildExposureCompensation(group, exposure); diff --git a/src/com/android/camera/ui/CameraHeadUpDisplay.java b/src/com/android/camera/ui/CameraHeadUpDisplay.java index 9bdb68f..3b64faa 100644 --- a/src/com/android/camera/ui/CameraHeadUpDisplay.java +++ b/src/com/android/camera/ui/CameraHeadUpDisplay.java @@ -48,7 +48,8 @@ public class CameraHeadUpDisplay extends HeadUpDisplay { CameraSettings.KEY_SCENE_MODE, CameraSettings.KEY_PICTURE_SIZE, CameraSettings.KEY_JPEG_QUALITY, - CameraSettings.KEY_COLOR_EFFECT); + CameraSettings.KEY_COLOR_EFFECT, + CameraSettings.KEY_METERING_MODE); mOtherSettings = new OtherSettingsIndicator(context, prefs); mOtherSettings.setOnRestorePreferencesClickedRunner(new Runnable() { |
