Camera.Parameters
public
class
Camera.Parameters
extends Object
java.lang.Object | |
↳ | android.hardware.Camera.Parameters |
This class was deprecated
in API level 21.
We recommend using the new android.hardware.camera2
API for new
applications.
Camera service settings.
To make camera parameters take effect, applications have to call
Camera#setParameters(Camera.Parameters)
. For example, after
Camera.Parameters#setWhiteBalance
is called, white balance is not
actually changed until Camera#setParameters(Camera.Parameters)
is called with the changed parameters object.
Different devices may have different camera capabilities, such as
picture size or flash modes. The application should query the camera
capabilities before setting parameters. For example, the application
should call Camera.Parameters#getSupportedColorEffects()
before
calling Camera.Parameters#setColorEffect(String)
. If the
camera does not support color effects,
Camera.Parameters#getSupportedColorEffects()
will return null.
Summary
Public methods | |
---|---|
String
|
flatten()
Creates a single string with all the parameters set in this Parameters object. |
String
|
get(String key)
Returns the value of a String parameter. |
String
|
getAntibanding()
Gets the current antibanding setting. |
boolean
|
getAutoExposureLock()
Gets the state of the auto-exposure lock. |
boolean
|
getAutoWhiteBalanceLock()
Gets the state of the auto-white balance lock. |
String
|
getColorEffect()
Gets the current color effect setting. |
int
|
getExposureCompensation()
Gets the current exposure compensation index. |
float
|
getExposureCompensationStep()
Gets the exposure compensation step. |
String
|
getFlashMode()
Gets the current flash mode setting. |
float
|
getFocalLength()
Gets the focal length (in millimeter) of the camera. |
List<Camera.Area>
|
getFocusAreas()
Gets the current focus areas. |
void
|
getFocusDistances(float[] output)
Gets the distances from the camera to where an object appears to be in focus. |
String
|
getFocusMode()
Gets the current focus mode setting. |
float
|
getHorizontalViewAngle()
Gets the horizontal angle of view in degrees. |
int
|
getInt(String key)
Returns the value of an integer parameter. |
int
|
getJpegQuality()
Returns the quality setting for the JPEG picture. |
int
|
getJpegThumbnailQuality()
Returns the quality setting for the EXIF thumbnail in Jpeg picture. |
Camera.Size
|
getJpegThumbnailSize()
Returns the dimensions for EXIF thumbnail in Jpeg picture. |
int
|
getMaxExposureCompensation()
Gets the maximum exposure compensation index. |
int
|
getMaxNumDetectedFaces()
Gets the maximum number of detected faces supported. |
int
|
getMaxNumFocusAreas()
Gets the maximum number of focus areas supported. |
int
|
getMaxNumMeteringAreas()
Gets the maximum number of metering areas supported. |
int
|
getMaxZoom()
Gets the maximum zoom value allowed for snapshot. |
List<Camera.Area>
|
getMeteringAreas()
Gets the current metering areas. |
int
|
getMinExposureCompensation()
Gets the minimum exposure compensation index. |
int
|
getPictureFormat()
Returns the image format for pictures. |
Camera.Size
|
getPictureSize()
Returns the dimension setting for pictures. |
Camera.Size
|
getPreferredPreviewSizeForVideo()
Returns the preferred or recommended preview size (width and height) in pixels for video recording. |
int
|
getPreviewFormat()
Returns the image format for preview frames got from
|
void
|
getPreviewFpsRange(int[] range)
Returns the current minimum and maximum preview fps. |
int
|
getPreviewFrameRate()
This method was deprecated
in API level 15.
replaced by |
Camera.Size
|
getPreviewSize()
Returns the dimensions setting for preview pictures. |
String
|
getSceneMode()
Gets the current scene mode setting. |
List<String>
|
getSupportedAntibanding()
Gets the supported antibanding values. |
List<String>
|
getSupportedColorEffects()
Gets the supported color effects. |
List<String>
|
getSupportedFlashModes()
Gets the supported flash modes. |
List<String>
|
getSupportedFocusModes()
Gets the supported focus modes. |
List<Camera.Size>
|
getSupportedJpegThumbnailSizes()
Gets the supported jpeg thumbnail sizes. |
List<Integer>
|
getSupportedPictureFormats()
Gets the supported picture formats. |
List<Camera.Size>
|
getSupportedPictureSizes()
Gets the supported picture sizes. |
List<Integer>
|
getSupportedPreviewFormats()
Gets the supported preview formats. |
List<int[]>
|
getSupportedPreviewFpsRange()
Gets the supported preview fps (frame-per-second) ranges. |
List<Integer>
|
getSupportedPreviewFrameRates()
This method was deprecated
in API level 15.
replaced by |
List<Camera.Size>
|
getSupportedPreviewSizes()
Gets the supported preview sizes. |
List<String>
|
getSupportedSceneModes()
Gets the supported scene modes. |
List<Camera.Size>
|
getSupportedVideoSizes()
Gets the supported video frame sizes that can be used by MediaRecorder. |
List<String>
|
getSupportedWhiteBalance()
Gets the supported white balance. |
float
|
getVerticalViewAngle()
Gets the vertical angle of view in degrees. |
boolean
|
getVideoStabilization()
Get the current state of video stabilization. |
String
|
getWhiteBalance()
Gets the current white balance setting. |
int
|
getZoom()
Gets current zoom value. |
List<Integer>
|
getZoomRatios()
Gets the zoom ratios of all zoom values. |
boolean
|
isAutoExposureLockSupported()
Returns true if auto-exposure locking is supported. |
boolean
|
isAutoWhiteBalanceLockSupported()
Returns true if auto-white balance locking is supported. |
boolean
|
isSmoothZoomSupported()
Returns true if smooth zoom is supported. |
boolean
|
isVideoSnapshotSupported()
Returns true if video snapshot is supported. |
boolean
|
isVideoStabilizationSupported()
Returns true if video stabilization is supported. |
boolean
|
isZoomSupported()
Returns true if zoom is supported. |
void
|
remove(String key)
|
void
|
removeGpsData()
Removes GPS latitude, longitude, altitude, and timestamp from the parameters. |
void
|
set(String key, String value)
Sets a String parameter. |
void
|
set(String key, int value)
Sets an integer parameter. |
void
|
setAntibanding(String antibanding)
Sets the antibanding. |
void
|
setAutoExposureLock(boolean toggle)
Sets the auto-exposure lock state. |
void
|
setAutoWhiteBalanceLock(boolean toggle)
Sets the auto-white balance lock state. |
void
|
setColorEffect(String value)
Sets the current color effect setting. |
void
|
setExposureCompensation(int value)
Sets the exposure compensation index. |
void
|
setFlashMode(String value)
Sets the flash mode. |
void
|
setFocusAreas(List<Camera.Area> focusAreas)
Sets focus areas. |
void
|
setFocusMode(String value)
Sets the focus mode. |
void
|
setGpsAltitude(double altitude)
Sets GPS altitude. |
void
|
setGpsLatitude(double latitude)
Sets GPS latitude coordinate. |
void
|
setGpsLongitude(double longitude)
Sets GPS longitude coordinate. |
void
|
setGpsProcessingMethod(String processing_method)
Sets GPS processing method. |
void
|
setGpsTimestamp(long timestamp)
Sets GPS timestamp. |
void
|
setJpegQuality(int quality)
Sets Jpeg quality of captured picture. |
void
|
setJpegThumbnailQuality(int quality)
Sets the quality of the EXIF thumbnail in Jpeg picture. |
void
|
setJpegThumbnailSize(int width, int height)
Sets the dimensions for EXIF thumbnail in Jpeg picture. |
void
|
setMeteringAreas(List<Camera.Area> meteringAreas)
Sets metering areas. |
void
|
setPictureFormat(int pixel_format)
Sets the image format for pictures. |
void
|
setPictureSize(int width, int height)
Sets the dimensions for pictures. |
void
|
setPreviewFormat(int pixel_format)
Sets the image format for preview pictures. |
void
|
setPreviewFpsRange(int min, int max)
Sets the minimum and maximum preview fps. |
void
|
setPreviewFrameRate(int fps)
This method was deprecated
in API level 15.
replaced by |
void
|
setPreviewSize(int width, int height)
Sets the dimensions for preview pictures. |
void
|
setRecordingHint(boolean hint)
Sets recording mode hint. |
void
|
setRotation(int rotation)
Sets the clockwise rotation angle in degrees relative to the orientation of the camera. |
void
|
setSceneMode(String value)
Sets the scene mode. |
void
|
setVideoStabilization(boolean toggle)
Enables and disables video stabilization. |
void
|
setWhiteBalance(String value)
Sets the white balance. |
void
|
setZoom(int value)
Sets current zoom value. |
void
|
unflatten(String flattened)
Takes a flattened string of parameters and adds each one to this Parameters object. |
Inherited methods | |
---|---|
Constants
FLASH_MODE_AUTO
public static final String FLASH_MODE_AUTO
Flash will be fired automatically when required. The flash may be fired during preview, auto-focus, or snapshot depending on the driver.
Constant Value: "auto"
FLASH_MODE_OFF
public static final String FLASH_MODE_OFF
Flash will not be fired.
Constant Value: "off"
FLASH_MODE_ON
public static final String FLASH_MODE_ON
Flash will always be fired during snapshot. The flash may also be fired during preview or auto-focus depending on the driver.
Constant Value: "on"
FLASH_MODE_RED_EYE
public static final String FLASH_MODE_RED_EYE
Flash will be fired in red-eye reduction mode.
Constant Value: "red-eye"
FLASH_MODE_TORCH
public static final String FLASH_MODE_TORCH
Constant emission of light during preview, auto-focus and snapshot. This can also be used for video recording.
Constant Value: "torch"
FOCUS_DISTANCE_FAR_INDEX
public static final int FOCUS_DISTANCE_FAR_INDEX
The array index of far focus distance for use with
getFocusDistances(float[])
.
Constant Value: 2 (0x00000002)
FOCUS_DISTANCE_NEAR_INDEX
public static final int FOCUS_DISTANCE_NEAR_INDEX
The array index of near focus distance for use with
getFocusDistances(float[])
.
Constant Value: 0 (0x00000000)
FOCUS_DISTANCE_OPTIMAL_INDEX
public static final int FOCUS_DISTANCE_OPTIMAL_INDEX
The array index of optimal focus distance for use with
getFocusDistances(float[])
.
Constant Value: 1 (0x00000001)
FOCUS_MODE_AUTO
public static final String FOCUS_MODE_AUTO
Auto-focus mode. Applications should call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
to start the focus in this mode.
Constant Value: "auto"
FOCUS_MODE_CONTINUOUS_PICTURE
public static final String FOCUS_MODE_CONTINUOUS_PICTURE
Continuous auto focus mode intended for taking pictures. The camera
continuously tries to focus. The speed of focus change is more
aggressive than FOCUS_MODE_CONTINUOUS_VIDEO
. Auto focus
starts when the parameter is set.
Applications can call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
in
this mode. If the autofocus is in the middle of scanning, the focus
callback will return when it completes. If the autofocus is not
scanning, the focus callback will immediately return with a boolean
that indicates whether the focus is sharp or not. The apps can then
decide if they want to take a picture immediately or to change the
focus mode to auto, and run a full autofocus cycle. The focus
position is locked after autoFocus call. If applications want to
resume the continuous focus, cancelAutoFocus must be called.
Restarting the preview will not resume the continuous autofocus. To
stop continuous focus, applications should change the focus mode to
other modes.
See also:
Constant Value: "continuous-picture"
FOCUS_MODE_CONTINUOUS_VIDEO
public static final String FOCUS_MODE_CONTINUOUS_VIDEO
Continuous auto focus mode intended for video recording. The camera
continuously tries to focus. This is the best choice for video
recording because the focus changes smoothly . Applications still can
call Camera.takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
in this mode but the
subject may not be in focus. Auto focus starts when the parameter is
set.
Since API level 14, applications can call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
in this mode. The focus callback will
immediately return with a boolean that indicates whether the focus is
sharp or not. The focus position is locked after autoFocus call. If
applications want to resume the continuous focus, cancelAutoFocus
must be called. Restarting the preview will not resume the continuous
autofocus. To stop continuous focus, applications should change the
focus mode to other modes.
See also:
Constant Value: "continuous-video"
FOCUS_MODE_EDOF
public static final String FOCUS_MODE_EDOF
Extended depth of field (EDOF). Focusing is done digitally and
continuously. Applications should not call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
in this mode.
Constant Value: "edof"
FOCUS_MODE_FIXED
public static final String FOCUS_MODE_FIXED
Focus is fixed. The camera is always in this mode if the focus is not
adjustable. If the camera has auto-focus, this mode can fix the
focus, which is usually at hyperfocal distance. Applications should
not call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
in this mode.
Constant Value: "fixed"
FOCUS_MODE_INFINITY
public static final String FOCUS_MODE_INFINITY
Focus is set at infinity. Applications should not call
Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
in this mode.
Constant Value: "infinity"
FOCUS_MODE_MACRO
public static final String FOCUS_MODE_MACRO
Macro (close-up) focus mode. Applications should call
Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
to start the focus in this
mode.
Constant Value: "macro"
PREVIEW_FPS_MAX_INDEX
public static final int PREVIEW_FPS_MAX_INDEX
The array index of maximum preview fps for use with getPreviewFpsRange(int[])
or getSupportedPreviewFpsRange()
.
Constant Value: 1 (0x00000001)
PREVIEW_FPS_MIN_INDEX
public static final int PREVIEW_FPS_MIN_INDEX
The array index of minimum preview fps for use with getPreviewFpsRange(int[])
or getSupportedPreviewFpsRange()
.
Constant Value: 0 (0x00000000)
SCENE_MODE_ACTION
public static final String SCENE_MODE_ACTION
Take photos of fast moving objects. Same as SCENE_MODE_SPORTS
.
Constant Value: "action"
SCENE_MODE_AUTO
public static final String SCENE_MODE_AUTO
Scene mode is off.
Constant Value: "auto"
SCENE_MODE_BARCODE
public static final String SCENE_MODE_BARCODE
Applications are looking for a barcode. Camera driver will be optimized for barcode reading.
Constant Value: "barcode"
SCENE_MODE_BEACH
public static final String SCENE_MODE_BEACH
Take pictures on the beach.
Constant Value: "beach"
SCENE_MODE_CANDLELIGHT
public static final String SCENE_MODE_CANDLELIGHT
Capture the naturally warm color of scenes lit by candles.
Constant Value: "candlelight"
SCENE_MODE_FIREWORKS
public static final String SCENE_MODE_FIREWORKS
For shooting firework displays.
Constant Value: "fireworks"
SCENE_MODE_HDR
public static final String SCENE_MODE_HDR
Capture a scene using high dynamic range imaging techniques. The camera will return an image that has an extended dynamic range compared to a regular capture. Capturing such an image may take longer than a regular capture.
Constant Value: "hdr"
SCENE_MODE_LANDSCAPE
public static final String SCENE_MODE_LANDSCAPE
Take pictures on distant objects.
Constant Value: "landscape"
SCENE_MODE_NIGHT
public static final String SCENE_MODE_NIGHT
Take photos at night.
Constant Value: "night"
SCENE_MODE_NIGHT_PORTRAIT
public static final String SCENE_MODE_NIGHT_PORTRAIT
Take people pictures at night.
Constant Value: "night-portrait"
SCENE_MODE_PARTY
public static final String SCENE_MODE_PARTY
Take indoor low-light shot.
Constant Value: "party"
SCENE_MODE_PORTRAIT
public static final String SCENE_MODE_PORTRAIT
Take people pictures.
Constant Value: "portrait"
SCENE_MODE_SNOW
public static final String SCENE_MODE_SNOW
Take pictures on the snow.
Constant Value: "snow"
SCENE_MODE_SPORTS
public static final String SCENE_MODE_SPORTS
Take photos of fast moving objects. Same as SCENE_MODE_ACTION
.
Constant Value: "sports"
SCENE_MODE_STEADYPHOTO
public static final String SCENE_MODE_STEADYPHOTO
Avoid blurry pictures (for example, due to hand shake).
Constant Value: "steadyphoto"
SCENE_MODE_SUNSET
public static final String SCENE_MODE_SUNSET
Take sunset photos.
Constant Value: "sunset"
SCENE_MODE_THEATRE
public static final String SCENE_MODE_THEATRE
Take photos in a theater. Flash light is off.
Constant Value: "theatre"
WHITE_BALANCE_CLOUDY_DAYLIGHT
public static final String WHITE_BALANCE_CLOUDY_DAYLIGHT
Constant Value: "cloudy-daylight"
WHITE_BALANCE_FLUORESCENT
public static final String WHITE_BALANCE_FLUORESCENT
Constant Value: "fluorescent"
WHITE_BALANCE_INCANDESCENT
public static final String WHITE_BALANCE_INCANDESCENT
Constant Value: "incandescent"
WHITE_BALANCE_WARM_FLUORESCENT
public static final String WHITE_BALANCE_WARM_FLUORESCENT
Constant Value: "warm-fluorescent"
Public methods
flatten
public String flatten ()
Creates a single string with all the parameters set in this Parameters object.
The unflatten(java.lang.String)
method does the reverse.
Returns | |
---|---|
String |
a String with all values from this Parameters object, in semi-colon delimited key-value pairs |
get
public String get (String key)
Returns the value of a String parameter.
Parameters | |
---|---|
key |
String : the key name for the parameter |
Returns | |
---|---|
String |
the String value of the parameter |
getAntibanding
public String getAntibanding ()
Gets the current antibanding setting.
Returns | |
---|---|
String |
current antibanding. null if antibanding setting is not supported. |
getAutoExposureLock
public boolean getAutoExposureLock ()
Gets the state of the auto-exposure lock. Applications should check
isAutoExposureLockSupported()
before using this method. See
setAutoExposureLock(boolean)
for details about the lock.
Returns | |
---|---|
boolean |
State of the auto-exposure lock. Returns true if auto-exposure is currently locked, and false otherwise. |
See also:
getAutoWhiteBalanceLock
public boolean getAutoWhiteBalanceLock ()
Gets the state of the auto-white balance lock. Applications should
check isAutoWhiteBalanceLockSupported()
before using this
method. See setAutoWhiteBalanceLock(boolean)
for details about the
lock.
Returns | |
---|---|
boolean |
State of the auto-white balance lock. Returns true if auto-white balance is currently locked, and false otherwise. |
See also:
getColorEffect
public String getColorEffect ()
Gets the current color effect setting.
Returns | |
---|---|
String |
current color effect. null if color effect setting is not supported. |
getExposureCompensation
public int getExposureCompensation ()
Gets the current exposure compensation index.
Returns | |
---|---|
int |
current exposure compensation index. The range is getMinExposureCompensation() to getMaxExposureCompensation() . 0 means exposure is not
adjusted. |
getExposureCompensationStep
public float getExposureCompensationStep ()
Gets the exposure compensation step.
Returns | |
---|---|
float |
exposure compensation step. Applications can get EV by multiplying the exposure compensation index and step. Ex: if exposure compensation index is -6 and step is 0.333333333, EV is -2. |
getFlashMode
public String getFlashMode ()
Gets the current flash mode setting.
Returns | |
---|---|
String |
current flash mode. null if flash mode setting is not supported. |
getFocalLength
public float getFocalLength ()
Gets the focal length (in millimeter) of the camera.
Returns | |
---|---|
float |
the focal length. Returns -1.0 when the device doesn't report focal length information. |
getFocusAreas
public List<Camera.Area> getFocusAreas ()
Gets the current focus areas. Camera driver uses the areas to decide focus.
Before using this API or setFocusAreas(java.util.List)
, apps should
call getMaxNumFocusAreas()
to know the maximum number of
focus areas first. If the value is 0, focus area is not supported.
Each focus area is a rectangle with specified weight. The direction
is relative to the sensor orientation, that is, what the sensor sees.
The direction is not affected by the rotation or mirroring of
Camera.setDisplayOrientation(int)
. Coordinates of the rectangle
range from -1000 to 1000. (-1000, -1000) is the upper left point.
(1000, 1000) is the lower right point. The width and height of focus
areas cannot be 0 or negative.
The weight must range from 1 to 1000. The weight should be interpreted as a per-pixel weight - all pixels in the area have the specified weight. This means a small area with the same weight as a larger area will have less influence on the focusing than the larger area. Focus areas can partially overlap and the driver will add the weights in the overlap region.
A special case of a null
focus area list means the driver is
free to select focus targets as it wants. For example, the driver may
use more signals to select focus areas and change them
dynamically. Apps can set the focus area list to null
if they
want the driver to completely control focusing.
Focus areas are relative to the current field of view
(getZoom()
). No matter what the zoom level is, (-1000,-1000)
represents the top of the currently visible camera frame. The focus
area cannot be set to be outside the current field of view, even
when using zoom.
Focus area only has effect if the current focus mode is
FOCUS_MODE_AUTO
, FOCUS_MODE_MACRO
,
FOCUS_MODE_CONTINUOUS_VIDEO
, or
FOCUS_MODE_CONTINUOUS_PICTURE
.
Returns | |
---|---|
List<Camera.Area> |
a list of current focus areas |
getFocusDistances
public void getFocusDistances (float[] output)
Gets the distances from the camera to where an object appears to be in focus. The object is sharpest at the optimal focus distance. The depth of field is the far focus distance minus near focus distance.
Focus distances may change after calling Camera.autoFocus(android.hardware.Camera.AutoFocusCallback)
, Camera.cancelAutoFocus()
, or Camera.startPreview()
. Applications can call Camera.getParameters()
and this method anytime to get the latest focus distances. If the
focus mode is FOCUS_MODE_CONTINUOUS_VIDEO, focus distances may change
from time to time.
This method is intended to estimate the distance between the camera and the subject. After autofocus, the subject distance may be within near and far focus distance. However, the precision depends on the camera hardware, autofocus algorithm, the focus area, and the scene. The error can be large and it should be only used as a reference.
Far focus distance >= optimal focus distance >= near focus distance.
If the focus distance is infinity, the value will be
Float.POSITIVE_INFINITY
.
Parameters | |
---|---|
output |
float : focus distances in meters. output must be a float
array with three elements. Near focus distance, optimal focus
distance, and far focus distance will be filled in the array. |
getFocusMode
public String getFocusMode ()
Gets the current focus mode setting.
Returns | |
---|---|
String |
current focus mode. This method will always return a non-null
value. Applications should call Camera.autoFocus(android.hardware.Camera.AutoFocusCallback) to start the focus if focus
mode is FOCUS_MODE_AUTO or FOCUS_MODE_MACRO. |
getHorizontalViewAngle
public float getHorizontalViewAngle ()
Gets the horizontal angle of view in degrees.
Returns | |
---|---|
float |
horizontal angle of view. Returns -1.0 when the device doesn't report view angle information. |
getInt
public int getInt (String key)
Returns the value of an integer parameter.
Parameters | |
---|---|
key |
String : the key name for the parameter |
Returns | |
---|---|
int |
the int value of the parameter |
getJpegQuality
public int getJpegQuality ()
Returns the quality setting for the JPEG picture.
Returns | |
---|---|
int |
the JPEG picture quality setting. |
getJpegThumbnailQuality
public int getJpegThumbnailQuality ()
Returns the quality setting for the EXIF thumbnail in Jpeg picture.
Returns | |
---|---|
int |
the JPEG quality setting of the EXIF thumbnail. |
getJpegThumbnailSize
public Camera.Size getJpegThumbnailSize ()
Returns the dimensions for EXIF thumbnail in Jpeg picture.
Returns | |
---|---|
Camera.Size |
a Size object with the height and width setting for the EXIF thumbnails |
getMaxExposureCompensation
public int getMaxExposureCompensation ()
Gets the maximum exposure compensation index.
Returns | |
---|---|
int |
maximum exposure compensation index (>=0). If both this
method and getMinExposureCompensation() return 0,
exposure compensation is not supported. |
getMaxNumDetectedFaces
public int getMaxNumDetectedFaces ()
Gets the maximum number of detected faces supported. This is the
maximum length of the list returned from FaceDetectionListener
.
If the return value is 0, face detection of the specified type is not
supported.
Returns | |
---|---|
int |
the maximum number of detected face supported by the camera. |
See also:
getMaxNumFocusAreas
public int getMaxNumFocusAreas ()
Gets the maximum number of focus areas supported. This is the maximum
length of the list in setFocusAreas(java.util.List)
and
getFocusAreas()
.
Returns | |
---|---|
int |
the maximum number of focus areas supported by the camera. |
See also:
getMaxNumMeteringAreas
public int getMaxNumMeteringAreas ()
Gets the maximum number of metering areas supported. This is the
maximum length of the list in setMeteringAreas(java.util.List)
and
getMeteringAreas()
.
Returns | |
---|---|
int |
the maximum number of metering areas supported by the camera. |
See also:
getMaxZoom
public int getMaxZoom ()
Gets the maximum zoom value allowed for snapshot. This is the maximum
value that applications can set to setZoom(int)
.
Applications should call isZoomSupported()
before using this
method. This value may change in different preview size. Applications
should call this again after setting preview size.
Returns | |
---|---|
int |
the maximum zoom value supported by the camera. |
getMeteringAreas
public List<Camera.Area> getMeteringAreas ()
Gets the current metering areas. Camera driver uses these areas to decide exposure.
Before using this API or setMeteringAreas(java.util.List)
, apps should
call getMaxNumMeteringAreas()
to know the maximum number of
metering areas first. If the value is 0, metering area is not
supported.
Each metering area is a rectangle with specified weight. The
direction is relative to the sensor orientation, that is, what the
sensor sees. The direction is not affected by the rotation or
mirroring of Camera.setDisplayOrientation(int)
. Coordinates of the
rectangle range from -1000 to 1000. (-1000, -1000) is the upper left
point. (1000, 1000) is the lower right point. The width and height of
metering areas cannot be 0 or negative.
The weight must range from 1 to 1000, and represents a weight for every pixel in the area. This means that a large metering area with the same weight as a smaller area will have more effect in the metering result. Metering areas can partially overlap and the driver will add the weights in the overlap region.
A special case of a null
metering area list means the driver
is free to meter as it chooses. For example, the driver may use more
signals to select metering areas and change them dynamically. Apps
can set the metering area list to null
if they want the
driver to completely control metering.
Metering areas are relative to the current field of view
(getZoom()
). No matter what the zoom level is, (-1000,-1000)
represents the top of the currently visible camera frame. The
metering area cannot be set to be outside the current field of view,
even when using zoom.
No matter what metering areas are, the final exposure are compensated
by setExposureCompensation(int)
.
Returns | |
---|---|
List<Camera.Area> |
a list of current metering areas |
getMinExposureCompensation
public int getMinExposureCompensation ()
Gets the minimum exposure compensation index.
Returns | |
---|---|
int |
minimum exposure compensation index (<=0). If both this
method and getMaxExposureCompensation() return 0,
exposure compensation is not supported. |
getPictureFormat
public int getPictureFormat ()
Returns the image format for pictures.
Returns | |
---|---|
int |
the picture format |
See also:
getPictureSize
public Camera.Size getPictureSize ()
Returns the dimension setting for pictures.
Returns | |
---|---|
Camera.Size |
a Size object with the height and width setting for pictures |
getPreferredPreviewSizeForVideo
public Camera.Size getPreferredPreviewSizeForVideo ()
Returns the preferred or recommended preview size (width and height) in pixels for video recording. Camcorder applications should set the preview size to a value that is not larger than the preferred preview size. In other words, the product of the width and height of the preview size should not be larger than that of the preferred preview size. In addition, we recommend to choose a preview size that has the same aspect ratio as the resolution of video to be recorded.
Returns | |
---|---|
Camera.Size |
the preferred preview size (width and height) in pixels for video recording if getSupportedVideoSizes() does not return null; otherwise, null is returned. |
See also:
getPreviewFormat
public int getPreviewFormat ()
Returns the image format for preview frames got from
PreviewCallback
.
Returns | |
---|---|
int |
the preview format. |
See also:
getPreviewFpsRange
public void getPreviewFpsRange (int[] range)
Returns the current minimum and maximum preview fps. The values are
one of the elements returned by getSupportedPreviewFpsRange()
.
Parameters | |
---|---|
range |
int |
Returns | |
---|---|
void |
range the minimum and maximum preview fps (scaled by 1000). |
getPreviewFrameRate
public int getPreviewFrameRate ()
This method was deprecated
in API level 15.
replaced by getPreviewFpsRange(int[])
Returns the setting for the rate at which preview frames are received. This is the target frame rate. The actual frame rate depends on the driver.
Returns | |
---|---|
int |
the frame rate setting (frames per second) |
getPreviewSize
public Camera.Size getPreviewSize ()
Returns the dimensions setting for preview pictures.
Returns | |
---|---|
Camera.Size |
a Size object with the width and height setting for the preview picture |
getSceneMode
public String getSceneMode ()
Gets the current scene mode setting.
Returns | |
---|---|
String |
one of SCENE_MODE_XXX string constant. null if scene mode setting is not supported. |
See also:
getSupportedAntibanding
public List<String> getSupportedAntibanding ()
Gets the supported antibanding values.
Returns | |
---|---|
List<String> |
a list of supported antibanding values. null if antibanding setting is not supported. |
See also:
getSupportedColorEffects
public List<String> getSupportedColorEffects ()
Gets the supported color effects.
Returns | |
---|---|
List<String> |
a list of supported color effects. null if color effect setting is not supported. |
See also:
getSupportedFlashModes
public List<String> getSupportedFlashModes ()
Gets the supported flash modes.
Returns | |
---|---|
List<String> |
a list of supported flash modes. null if flash mode setting is not supported. |
See also:
getSupportedFocusModes
public List<String> getSupportedFocusModes ()
Gets the supported focus modes.
Returns | |
---|---|
List<String> |
a list of supported focus modes. This method will always return a list with at least one element. |
See also:
getSupportedJpegThumbnailSizes
public List<Camera.Size> getSupportedJpegThumbnailSizes ()
Gets the supported jpeg thumbnail sizes.
Returns | |
---|---|
List<Camera.Size> |
a list of Size object. This method will always return a list with at least two elements. Size 0,0 (no thumbnail) is always supported. |
getSupportedPictureFormats
public List<Integer> getSupportedPictureFormats ()
Gets the supported picture formats.
Returns | |
---|---|
List<Integer> |
supported picture formats. This method will always return a list with at least one element. |
See also:
getSupportedPictureSizes
public List<Camera.Size> getSupportedPictureSizes ()
Gets the supported picture sizes.
Returns | |
---|---|
List<Camera.Size> |
a list of supported picture sizes. This method will always return a list with at least one element. |
getSupportedPreviewFormats
public List<Integer> getSupportedPreviewFormats ()
Gets the supported preview formats. ImageFormat.NV21
is always supported. ImageFormat.YV12
is always supported since API level 12.
Returns | |
---|---|
List<Integer> |
a list of supported preview formats. This method will always return a list with at least one element. |
See also:
getSupportedPreviewFpsRange
public List<int[]> getSupportedPreviewFpsRange ()
Gets the supported preview fps (frame-per-second) ranges. Each range contains a minimum fps and maximum fps. If minimum fps equals to maximum fps, the camera outputs frames in fixed frame rate. If not, the camera outputs frames in auto frame rate. The actual frame rate fluctuates between the minimum and the maximum. The values are multiplied by 1000 and represented in integers. For example, if frame rate is 26.623 frames per second, the value is 26623.
Returns | |
---|---|
List<int[]> |
a list of supported preview fps ranges. This method returns a list with at least one element. Every element is an int array of two values - minimum fps and maximum fps. The list is sorted from small to large (first by maximum fps and then minimum fps). |
getSupportedPreviewFrameRates
public List<Integer> getSupportedPreviewFrameRates ()
This method was deprecated
in API level 15.
replaced by getSupportedPreviewFpsRange()
Gets the supported preview frame rates.
Returns | |
---|---|
List<Integer> |
a list of supported preview frame rates. null if preview frame rate setting is not supported. |
getSupportedPreviewSizes
public List<Camera.Size> getSupportedPreviewSizes ()
Gets the supported preview sizes.
Returns | |
---|---|
List<Camera.Size> |
a list of Size object. This method will always return a list with at least one element. |
getSupportedSceneModes
public List<String> getSupportedSceneModes ()
Gets the supported scene modes.
Returns | |
---|---|
List<String> |
a list of supported scene modes. null if scene mode setting is not supported. |
See also:
getSupportedVideoSizes
public List<Camera.Size> getSupportedVideoSizes ()
Gets the supported video frame sizes that can be used by MediaRecorder.
If the returned list is not null, the returned list will contain at least one Size and one of the sizes in the returned list must be passed to MediaRecorder.setVideoSize() for camcorder application if camera is used as the video source. In this case, the size of the preview can be different from the resolution of the recorded video during video recording.
Exception on 176x144 (QCIF) resolution:
Camera devices usually have a fixed capability for downscaling from
larger resolution to smaller, and the QCIF resolution sometimes
is not fully supported due to this limitation on devices with
high-resolution image sensors. Therefore, trying to configure a QCIF
video resolution with any preview or picture size larger than
1920x1080 (either width or height) might not be supported, and
Camera.setParameters(android.hardware.Camera.Parameters)
will throw a
RuntimeException if it is not.
Returns | |
---|---|
List<Camera.Size> |
a list of Size object if camera has separate preview and video output; otherwise, null is returned. |
See also:
getSupportedWhiteBalance
public List<String> getSupportedWhiteBalance ()
Gets the supported white balance.
Returns | |
---|---|
List<String> |
a list of supported white balance. null if white balance setting is not supported. |
See also:
getVerticalViewAngle
public float getVerticalViewAngle ()
Gets the vertical angle of view in degrees.
Returns | |
---|---|
float |
vertical angle of view. Returns -1.0 when the device doesn't report view angle information. |
getVideoStabilization
public boolean getVideoStabilization ()
Get the current state of video stabilization. See
setVideoStabilization(boolean)
for details of video stabilization.
Returns | |
---|---|
boolean |
true if video stabilization is enabled |
getWhiteBalance
public String getWhiteBalance ()
Gets the current white balance setting.
Returns | |
---|---|
String |
current white balance. null if white balance setting is not supported. |
getZoom
public int getZoom ()
Gets current zoom value. This also works when smooth zoom is in
progress. Applications should check isZoomSupported()
before
using this method.
Returns | |
---|---|
int |
the current zoom value. The range is 0 to getMaxZoom() . 0 means the camera is not zoomed. |
getZoomRatios
public List<Integer> getZoomRatios ()
Gets the zoom ratios of all zoom values. Applications should check
isZoomSupported()
before using this method.
Returns | |
---|---|
List<Integer> |
the zoom ratios in 1/100 increments. Ex: a zoom of 3.2x is
returned as 320. The number of elements is getMaxZoom() + 1. The list is sorted from small to large. The
first element is always 100. The last element is the zoom
ratio of the maximum zoom value. |
isAutoExposureLockSupported
public boolean isAutoExposureLockSupported ()
Returns true if auto-exposure locking is supported. Applications
should call this before trying to lock auto-exposure. See
setAutoExposureLock(boolean)
for details about the lock.
Returns | |
---|---|
boolean |
true if auto-exposure lock is supported. |
See also:
isAutoWhiteBalanceLockSupported
public boolean isAutoWhiteBalanceLockSupported ()
Returns true if auto-white balance locking is supported. Applications
should call this before trying to lock auto-white balance. See
setAutoWhiteBalanceLock(boolean)
for details about the lock.
Returns | |
---|---|
boolean |
true if auto-white balance lock is supported. |
See also:
isSmoothZoomSupported
public boolean isSmoothZoomSupported ()
Returns true if smooth zoom is supported. Applications should call this before using other smooth zoom methods.
Returns | |
---|---|
boolean |
true if smooth zoom is supported. |
isVideoSnapshotSupported
public boolean isVideoSnapshotSupported ()
Returns true if video snapshot is supported. That is, applications
can call Camera.takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
during recording. Applications do not need
to call Camera.startPreview()
after taking a picture. The preview
will be still active. Other than that, taking a picture during
recording is identical to taking a picture normally. All settings and
methods related to takePicture work identically. Ex:
getPictureSize()
, getSupportedPictureSizes()
,
setJpegQuality(int)
, setRotation(int)
, and etc. The
picture will have an EXIF header. FLASH_MODE_AUTO
and
FLASH_MODE_ON
also still work, but the video will record the
flash.
Applications can set shutter callback as null to avoid the shutter sound. It is also recommended to set raw picture and post view callbacks to null to avoid the interrupt of preview display.
Field-of-view of the recorded video may be different from that of the captured pictures. The maximum size of a video snapshot may be smaller than that for regular still captures. If the current picture size is set higher than can be supported by video snapshot, the picture will be captured at the maximum supported size instead.
Returns | |
---|---|
boolean |
true if video snapshot is supported. |
isVideoStabilizationSupported
public boolean isVideoStabilizationSupported ()
Returns true if video stabilization is supported. See
setVideoStabilization(boolean)
for details of video stabilization.
Returns | |
---|---|
boolean |
true if video stabilization is supported |
isZoomSupported
public boolean isZoomSupported ()
Returns true if zoom is supported. Applications should call this before using other zoom methods.
Returns | |
---|---|
boolean |
true if zoom is supported. |
removeGpsData
public void removeGpsData ()
Removes GPS latitude, longitude, altitude, and timestamp from the parameters.
set
public void set (String key, String value)
Sets a String parameter.
Parameters | |
---|---|
key |
String : the key name for the parameter |
value |
String : the String value of the parameter |
set
public void set (String key, int value)
Sets an integer parameter.
Parameters | |
---|---|
key |
String : the key name for the parameter |
value |
int : the int value of the parameter |
setAntibanding
public void setAntibanding (String antibanding)
Sets the antibanding.
Parameters | |
---|---|
antibanding |
String : new antibanding value. |
See also:
setAutoExposureLock
public void setAutoExposureLock (boolean toggle)
Sets the auto-exposure lock state. Applications should check
isAutoExposureLockSupported()
before using this method.
If set to true, the camera auto-exposure routine will immediately pause until the lock is set to false. Exposure compensation settings changes will still take effect while auto-exposure is locked.
If auto-exposure is already locked, setting this to true again has no effect (the driver will not recalculate exposure values).
Stopping preview with Camera.stopPreview()
, or triggering still
image capture with Camera.takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
, will not change the
lock.
Exposure compensation, auto-exposure lock, and auto-white balance lock can be used to capture an exposure-bracketed burst of images, for example.
Auto-exposure state, including the lock state, will not be
maintained after camera Camera.release()
is called. Locking
auto-exposure after Camera.open()
but before the first call to
Camera.startPreview()
will not allow the auto-exposure routine to
run at all, and may result in severely over- or under-exposed
images.
Parameters | |
---|---|
toggle |
boolean : new state of the auto-exposure lock. True means that
auto-exposure is locked, false means that the auto-exposure
routine is free to run normally. |
See also:
setAutoWhiteBalanceLock
public void setAutoWhiteBalanceLock (boolean toggle)
Sets the auto-white balance lock state. Applications should check
isAutoWhiteBalanceLockSupported()
before using this
method.
If set to true, the camera auto-white balance routine will immediately pause until the lock is set to false.
If auto-white balance is already locked, setting this to true again has no effect (the driver will not recalculate white balance values).
Stopping preview with Camera.stopPreview()
, or triggering still
image capture with Camera.takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
, will not change the
the lock.
Changing the white balance mode with setWhiteBalance(String)
will release the auto-white balance lock if it is set.
Exposure compensation, AE lock, and AWB lock can be used to
capture an exposure-bracketed burst of images, for example.
Auto-white balance state, including the lock state, will not be
maintained after camera Camera.release()
is called. Locking
auto-white balance after Camera.open()
but before the first call to
Camera.startPreview()
will not allow the auto-white balance routine
to run at all, and may result in severely incorrect color in captured
images.
Parameters | |
---|---|
toggle |
boolean : new state of the auto-white balance lock. True means
that auto-white balance is locked, false means that the
auto-white balance routine is free to run normally. |
setColorEffect
public void setColorEffect (String value)
Sets the current color effect setting.
Parameters | |
---|---|
value |
String : new color effect. |
See also:
setExposureCompensation
public void setExposureCompensation (int value)
Sets the exposure compensation index.
Parameters | |
---|---|
value |
int : exposure compensation index. The valid value range is
from getMinExposureCompensation() (inclusive) to getMaxExposureCompensation() (inclusive). 0 means exposure is
not adjusted. Application should call
getMinExposureCompensation and getMaxExposureCompensation to
know if exposure compensation is supported. |
setFlashMode
public void setFlashMode (String value)
Sets the flash mode.
Parameters | |
---|---|
value |
String : flash mode. |
See also:
setFocusAreas
public void setFocusAreas (List<Camera.Area> focusAreas)
Sets focus areas. See getFocusAreas()
for documentation.
Parameters | |
---|---|
focusAreas |
List : the focus areas |
See also:
setFocusMode
public void setFocusMode (String value)
Sets the focus mode.
Parameters | |
---|---|
value |
String : focus mode. |
See also:
setGpsAltitude
public void setGpsAltitude (double altitude)
Sets GPS altitude. This will be stored in JPEG EXIF header.
Parameters | |
---|---|
altitude |
double : GPS altitude in meters. |
setGpsLatitude
public void setGpsLatitude (double latitude)
Sets GPS latitude coordinate. This will be stored in JPEG EXIF header.
Parameters | |
---|---|
latitude |
double : GPS latitude coordinate. |
setGpsLongitude
public void setGpsLongitude (double longitude)
Sets GPS longitude coordinate. This will be stored in JPEG EXIF header.
Parameters | |
---|---|
longitude |
double : GPS longitude coordinate. |
setGpsProcessingMethod
public void setGpsProcessingMethod (String processing_method)
Sets GPS processing method. The method will be stored in a UTF-8 string up to 31 bytes long, in the JPEG EXIF header.
Parameters | |
---|---|
processing_method |
String : The processing method to get this location. |
setGpsTimestamp
public void setGpsTimestamp (long timestamp)
Sets GPS timestamp. This will be stored in JPEG EXIF header.
Parameters | |
---|---|
timestamp |
long : GPS timestamp (UTC in seconds since January 1,
1970). |
setJpegQuality
public void setJpegQuality (int quality)
Sets Jpeg quality of captured picture.
Parameters | |
---|---|
quality |
int : the JPEG quality of captured picture. The range is 1
to 100, with 100 being the best. |
setJpegThumbnailQuality
public void setJpegThumbnailQuality (int quality)
Sets the quality of the EXIF thumbnail in Jpeg picture.
Parameters | |
---|---|
quality |
int : the JPEG quality of the EXIF thumbnail. The range is 1
to 100, with 100 being the best. |
setJpegThumbnailSize
public void setJpegThumbnailSize (int width, int height)
Sets the dimensions for EXIF thumbnail in Jpeg picture. If applications set both width and height to 0, EXIF will not contain thumbnail.
Applications need to consider the display orientation. See setPreviewSize(int, int)
for reference.
Parameters | |
---|---|
width |
int : the width of the thumbnail, in pixels |
height |
int : the height of the thumbnail, in pixels |
See also:
setMeteringAreas
public void setMeteringAreas (List<Camera.Area> meteringAreas)
Sets metering areas. See getMeteringAreas()
for
documentation.
Parameters | |
---|---|
meteringAreas |
List : the metering areas |
See also:
setPictureFormat
public void setPictureFormat (int pixel_format)
Sets the image format for pictures.
Parameters | |
---|---|
pixel_format |
int : the desired picture format
(ImageFormat.NV21,
ImageFormat.RGB_565, or
ImageFormat.JPEG) |
See also:
setPictureSize
public void setPictureSize (int width, int height)
Sets the dimensions for pictures.
Applications need to consider the display orientation. See setPreviewSize(int, int)
for reference.
Exception on 176x144 (QCIF) resolution:
Camera devices usually have a fixed capability for downscaling from
larger resolution to smaller, and the QCIF resolution sometimes
is not fully supported due to this limitation on devices with
high-resolution image sensors. Therefore, trying to configure a QCIF
picture size with any preview or video size larger than 1920x1080
(either width or height) might not be supported, and
Camera.setParameters(android.hardware.Camera.Parameters)
might throw a
RuntimeException if it is not.
Parameters | |
---|---|
width |
int : the width for pictures, in pixels |
height |
int : the height for pictures, in pixels |
See also:
setPreviewFormat
public void setPreviewFormat (int pixel_format)
Sets the image format for preview pictures.
If this is never called, the default format will be
ImageFormat.NV21
, which
uses the NV21 encoding format.
Use Parameters#getSupportedPreviewFormats
to get a list of
the available preview formats.
It is strongly recommended that either
ImageFormat.NV21
or
ImageFormat.YV12
is used, since
they are supported by all camera devices.
For YV12, the image buffer that is received is not necessarily
tightly packed, as there may be padding at the end of each row of
pixel data, as described in
ImageFormat.YV12
. For camera callback data,
it can be assumed that the stride of the Y and UV data is the
smallest possible that meets the alignment requirements. That is, if
the preview size is width x height, then the following
equations describe the buffer index for the beginning of row
y for the Y plane and row c for the U and V
planes:
yStride = (int) ceil(width / 16.0) * 16;
uvStride = (int) ceil( (yStride / 2) / 16.0) * 16;
ySize = yStride * height;
uvSize = uvStride * height / 2;
yRowIndex = yStride * y;
uRowIndex = ySize + uvSize + uvStride * c;
vRowIndex = ySize + uvStride * c;
size = ySize + uvSize * 2;
Parameters | |
---|---|
pixel_format |
int : the desired preview picture format, defined by
one of the ImageFormat constants. (E.g.,
ImageFormat.NV21 (default), or
ImageFormat.YV12) |
See also:
setPreviewFpsRange
public void setPreviewFpsRange (int min, int max)
Sets the minimum and maximum preview fps. This controls the rate of
preview frames received in PreviewCallback
. The minimum and
maximum preview fps must be one of the elements from getSupportedPreviewFpsRange()
.
Parameters | |
---|---|
min |
int : the minimum preview fps (scaled by 1000). |
max |
int : the maximum preview fps (scaled by 1000). |
Throws | |
---|---|
RuntimeException |
if fps range is invalid. |
setPreviewFrameRate
public void setPreviewFrameRate (int fps)
This method was deprecated
in API level 15.
replaced by setPreviewFpsRange(int, int)
Sets the rate at which preview frames are received. This is the target frame rate. The actual frame rate depends on the driver.
Parameters | |
---|---|
fps |
int : the frame rate (frames per second) |
setPreviewSize
public void setPreviewSize (int width, int height)
Sets the dimensions for preview pictures. If the preview has already
started, applications should stop the preview first before changing
preview size.
The sides of width and height are based on camera orientation. That
is, the preview size is the size before it is rotated by display
orientation. So applications need to consider the display orientation
while setting preview size. For example, suppose the camera supports
both 480x320 and 320x480 preview sizes. The application wants a 3:2
preview ratio. If the display orientation is set to 0 or 180, preview
size should be set to 480x320. If the display orientation is set to
90 or 270, preview size should be set to 320x480. The display
orientation should also be considered while setting picture size and
thumbnail size.
Exception on 176x144 (QCIF) resolution:
Camera devices usually have a fixed capability for downscaling from
larger resolution to smaller, and the QCIF resolution sometimes
is not fully supported due to this limitation on devices with
high-resolution image sensors. Therefore, trying to configure a QCIF
preview size with any picture or video size larger than 1920x1080
(either width or height) might not be supported, and
Camera.setParameters(android.hardware.Camera.Parameters)
might throw a
RuntimeException if it is not.
Parameters | |
---|---|
width |
int : the width of the pictures, in pixels |
height |
int : the height of the pictures, in pixels |
setRecordingHint
public void setRecordingHint (boolean hint)
Sets recording mode hint. This tells the camera that the intent of
the application is to record videos MediaRecorder.start()
, not to take still pictures
Camera.takePicture(android.hardware.Camera.ShutterCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback, android.hardware.Camera.PictureCallback)
. Using this hint can
allow MediaRecorder.start() to start faster or with fewer glitches on
output. This should be called before starting preview for the best
result, but can be changed while the preview is active. The default
value is false.
The app can still call takePicture() when the hint is true or call
MediaRecorder.start() when the hint is false. But the performance may
be worse.
Parameters | |
---|---|
hint |
boolean : true if the apps intend to record videos using
MediaRecorder . |
setRotation
public void setRotation (int rotation)
Sets the clockwise rotation angle in degrees relative to the
orientation of the camera. This affects the pictures returned from
JPEG PictureCallback
. The camera driver may set orientation
in the EXIF header without rotating the picture. Or the driver may
rotate the picture and the EXIF thumbnail. If the Jpeg picture is
rotated, the orientation in the EXIF header will be missing or 1 (row
#0 is top and column #0 is left side).
If applications want to rotate the picture to match the orientation
of what users see, apps should use
OrientationEventListener
and
Camera.CameraInfo
. The value from
OrientationEventListener is relative to the natural orientation of
the device. CameraInfo.orientation is the angle between camera
orientation and natural device orientation. The sum of the two is the
rotation angle for back-facing camera. The difference of the two is
the rotation angle for front-facing camera. Note that the JPEG
pictures of front-facing cameras are not mirrored as in preview
display.
For example, suppose the natural orientation of the device is portrait. The device is rotated 270 degrees clockwise, so the device orientation is 270. Suppose a back-facing camera sensor is mounted in landscape and the top side of the camera sensor is aligned with the right edge of the display in natural orientation. So the camera orientation is 90. The rotation should be set to 0 (270 + 90).
The reference code is as follows.
public void onOrientationChanged(int orientation) { if (orientation == ORIENTATION_UNKNOWN) return; android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo(); android.hardware.Camera.getCameraInfo(cameraId, info); orientation = (orientation + 45) / 90 * 90; int rotation = 0; if (info.facing == CameraInfo.CAMERA_FACING_FRONT) { rotation = (info.orientation - orientation + 360) % 360; } else { // back-facing camera rotation = (info.orientation + orientation) % 360; } mParameters.setRotation(rotation); }
Parameters | |
---|---|
rotation |
int : The rotation angle in degrees relative to the
orientation of the camera. Rotation can only be 0,
90, 180 or 270. |
Throws | |
---|---|
IllegalArgumentException |
if rotation value is invalid. |
setSceneMode
public void setSceneMode (String value)
Sets the scene mode. Changing scene mode may override other parameters (such as flash mode, focus mode, white balance). For example, suppose originally flash mode is on and supported flash modes are on/off. In night scene mode, both flash mode and supported flash mode may be changed to off. After setting scene mode, applications should call getParameters to know if some parameters are changed.
Parameters | |
---|---|
value |
String : scene mode. |
See also:
setVideoStabilization
public void setVideoStabilization (boolean toggle)
Enables and disables video stabilization. Use
isVideoStabilizationSupported()
to determine if calling this
method is valid.
Video stabilization reduces the shaking due to the motion of the
camera in both the preview stream and in recorded videos, including
data received from the preview callback. It does not reduce motion
blur in images captured with
takePicture
.
Video stabilization can be enabled and disabled while preview or recording is active, but toggling it may cause a jump in the video stream that may be undesirable in a recorded video.
Parameters | |
---|---|
toggle |
boolean : Set to true to enable video stabilization, and false to
disable video stabilization. |
setWhiteBalance
public void setWhiteBalance (String value)
Sets the white balance. Changing the setting will release the auto-white balance lock. It is recommended not to change white balance and AWB lock at the same time.
Parameters | |
---|---|
value |
String : new white balance. |
setZoom
public void setZoom (int value)
Sets current zoom value. If the camera is zoomed (value > 0), the
actual picture size may be smaller than picture size setting.
Applications can check the actual picture size after picture is
returned from PictureCallback
. The preview size remains the
same in zoom. Applications should check isZoomSupported()
before using this method.
Parameters | |
---|---|
value |
int : zoom value. The valid range is 0 to getMaxZoom() . |
unflatten
public void unflatten (String flattened)
Takes a flattened string of parameters and adds each one to this Parameters object.
The flatten()
method does the reverse.
Parameters | |
---|---|
flattened |
String : a String of parameters (key-value paired) that
are semi-colon delimited |