public class Camera.Parameters
extends Object
java.lang.Object | |
↳ | android.hardware.Camera.Parameters |
该类在API级别21中已被弃用。
我们建议在新的应用程序中使用新的android.hardware.camera2
API。
相机服务设置。
要使摄像头参数生效,应用程序必须调用setParameters(Camera.Parameters)
。 例如,调用setWhiteBalance(String)
之后,直到使用更改的参数对象调用setParameters(Camera.Parameters)
实际上才会更改白平衡。
不同的设备可能具有不同的相机功能,如照片尺寸或闪光灯模式。 应用程序应在设置参数之前查询相机的功能。 例如,应用程序应该在致电getSupportedColorEffects()
之前调用setColorEffect(String)
。 如果相机不支持色彩效果, getSupportedColorEffects()
将返回null。
Public methods |
|
---|---|
String |
flatten() 创建一个包含此Parameters对象中设置的所有参数的单个字符串。 |
String |
get(String key) 返回String参数的值。 |
String |
getAntibanding() 获取当前的抗菌设置。 |
boolean |
getAutoExposureLock() 获取自动曝光锁的状态。 |
boolean |
getAutoWhiteBalanceLock() 获取自动白平衡锁定的状态。 |
String |
getColorEffect() 获取当前的颜色效果设置。 |
int |
getExposureCompensation() 获取当前的暴露补偿指数。 |
float |
getExposureCompensationStep() 获取曝光补偿步骤。 |
String |
getFlashMode() 获取当前的闪光模式设置。 |
float |
getFocalLength() 获取相机的焦距(以毫米为单位)。 |
List<Camera.Area> |
getFocusAreas() 获取当前的重点领域。 |
void |
getFocusDistances(float[] output) 获取从相机到物体看起来聚焦的位置的距离。 |
String |
getFocusMode() 获取当前的对焦模式设置。 |
float |
getHorizontalViewAngle() 以度数获取水平视角。 |
int |
getInt(String key) 返回整数参数的值。 |
int |
getJpegQuality() 返回JPEG图片的质量设置。 |
int |
getJpegThumbnailQuality() 返回Jpeg图片中EXIF缩略图的质量设置。 |
Camera.Size |
getJpegThumbnailSize() 返回Jpeg图片中EXIF缩略图的尺寸。 |
int |
getMaxExposureCompensation() 获取最大曝光补偿指数。 |
int |
getMaxNumDetectedFaces() 获取支持的最大检测面数。 |
int |
getMaxNumFocusAreas() 获取支持的最大焦点区域数量。 |
int |
getMaxNumMeteringAreas() 获取支持的测量区域的最大数量。 |
int |
getMaxZoom() 获取快照允许的最大缩放值。 |
List<Camera.Area> |
getMeteringAreas() 获取当前的测光区域。 |
int |
getMinExposureCompensation() 获取最低曝光补偿指数。 |
int |
getPictureFormat() 返回图片的图片格式。 |
Camera.Size |
getPictureSize() 返回图片的尺寸设置。 |
Camera.Size |
getPreferredPreviewSizeForVideo() 返回视频录制的首选或推荐预览大小(宽度和高度)(以像素为单位)。 |
int |
getPreviewFormat() 返回从 |
void |
getPreviewFpsRange(int[] range) 返回当前最小和最大预览fps。 |
int |
getPreviewFrameRate() 此方法在API级别9中已被弃用。替换为 |
Camera.Size |
getPreviewSize() 返回预览图片的尺寸设置。 |
String |
getSceneMode() 获取当前场景模式设置。 |
List<String> |
getSupportedAntibanding() 获取支持的抗菌值。 |
List<String> |
getSupportedColorEffects() 获取支持的颜色效果。 |
List<String> |
getSupportedFlashModes() 获取支持的闪光灯模式。 |
List<String> |
getSupportedFocusModes() 获取支持的对焦模式。 |
List<Camera.Size> |
getSupportedJpegThumbnailSizes() 获取支持的jpeg缩略图大小。 |
List<Integer> |
getSupportedPictureFormats() 获取支持的图片格式。 |
List<Camera.Size> |
getSupportedPictureSizes() 获取支持的图片大小。 |
List<Integer> |
getSupportedPreviewFormats() 获取支持的预览格式。 |
List<int[]> |
getSupportedPreviewFpsRange() 获取支持的预览fps(帧每秒)范围。 |
List<Integer> |
getSupportedPreviewFrameRates() 此方法在API级别9中已被弃用。替换为 |
List<Camera.Size> |
getSupportedPreviewSizes() 获取支持的预览大小。 |
List<String> |
getSupportedSceneModes() 获取支持的场景模式。 |
List<Camera.Size> |
getSupportedVideoSizes() 获取MediaRecorder可以使用的支持的视频帧大小。 |
List<String> |
getSupportedWhiteBalance() 获取支持的白平衡。 |
float |
getVerticalViewAngle() 以度数获得垂直视角。 |
boolean |
getVideoStabilization() 获取视频稳定的当前状态。 |
String |
getWhiteBalance() 获取当前的白平衡设置。 |
int |
getZoom() 获取当前缩放值。 |
List<Integer> |
getZoomRatios() 获取所有缩放值的缩放比例。 |
boolean |
isAutoExposureLockSupported() 如果支持自动曝光锁定,则返回true。 |
boolean |
isAutoWhiteBalanceLockSupported() 如果支持自动白平衡锁定,则返回true。 |
boolean |
isSmoothZoomSupported() 如果支持平滑缩放,则返回true。 |
boolean |
isVideoSnapshotSupported() 如果支持视频快照,则返回true。 |
boolean |
isVideoStabilizationSupported() 如果支持视频稳定,则返回true。 |
boolean |
isZoomSupported() 如果支持缩放,则返回true。 |
void |
remove(String key) |
void |
removeGpsData() 从参数中删除GPS纬度,经度,高度和时间戳。 |
void |
set(String key, String value) 设置一个String参数。 |
void |
set(String key, int value) 设置一个整数参数。 |
void |
setAntibanding(String antibanding) 设置抗菌。 |
void |
setAutoExposureLock(boolean toggle) 设置自动曝光锁定状态。 |
void |
setAutoWhiteBalanceLock(boolean toggle) 设置自动白平衡锁定状态。 |
void |
setColorEffect(String value) 设置当前的颜色效果设置。 |
void |
setExposureCompensation(int value) 设置曝光补偿索引。 |
void |
setFlashMode(String value) 设置闪光灯模式。 |
void |
setFocusAreas(List<Camera.Area> focusAreas) 设置重点领域。 |
void |
setFocusMode(String value) 设置对焦模式。 |
void |
setGpsAltitude(double altitude) 设置GPS高度。 |
void |
setGpsLatitude(double latitude) 设置GPS纬度坐标。 |
void |
setGpsLongitude(double longitude) 设置GPS经度坐标。 |
void |
setGpsProcessingMethod(String processing_method) 设置GPS处理方法。 |
void |
setGpsTimestamp(long timestamp) 设置GPS时间戳。 |
void |
setJpegQuality(int quality) 设置拍摄图片的Jpeg质量。 |
void |
setJpegThumbnailQuality(int quality) 设置JPEG图片中EXIF缩略图的质量。 |
void |
setJpegThumbnailSize(int width, int height) 在Jpeg图片中设置EXIF缩略图的尺寸。 |
void |
setMeteringAreas(List<Camera.Area> meteringAreas) 设置测光区域。 |
void |
setPictureFormat(int pixel_format) 设置图片的图片格式。 |
void |
setPictureSize(int width, int height) 设置图片的尺寸。 |
void |
setPreviewFormat(int pixel_format) 设置预览图片的图像格式。 |
void |
setPreviewFpsRange(int min, int max) 设置最小和最大预览fps。 |
void |
setPreviewFrameRate(int fps) 此方法在API级别9中已弃用。替换为 |
void |
setPreviewSize(int width, int height) 设置预览图片的尺寸。 |
void |
setRecordingHint(boolean hint) 设置录制模式提示。 |
void |
setRotation(int rotation) 设置相对于摄像机方向的顺时针旋转角度。 |
void |
setSceneMode(String value) 设置场景模式。 |
void |
setVideoStabilization(boolean toggle) 启用和禁用视频稳定。 |
void |
setWhiteBalance(String value) 设置白平衡。 |
void |
setZoom(int value) 设置当前的缩放值。 |
void |
unflatten(String flattened) 采用扁平化的参数串并将每个参数添加到此参数对象。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String FLASH_MODE_AUTO
Flash会在需要时自动启动。 在预览,自动对焦或快照期间,闪光灯可能会被触发,具体取决于驱动程序。
常数值:“自动”
String FLASH_MODE_ON
快照期间,Flash将始终被触发。 根据驱动程序的不同,预览或自动对焦期间也可能会触发闪光灯。
常数值:“on”
int FOCUS_DISTANCE_FAR_INDEX
与 getFocusDistances(float[])
一起使用的远焦距阵列索引。
常量值:2(0x00000002)
int FOCUS_DISTANCE_NEAR_INDEX
用于 getFocusDistances(float[])
的近焦距阵列索引。
常量值:0(0x00000000)
int FOCUS_DISTANCE_OPTIMAL_INDEX
与 getFocusDistances(float[])
一起使用的最佳焦点距离阵列索引。
常数值:1(0x00000001)
String FOCUS_MODE_AUTO
自动对焦模式。 应用程序应该调用autoFocus(AutoFocusCallback)
以在此模式下启动焦点。
常数值:“自动”
String FOCUS_MODE_CONTINUOUS_PICTURE
连续自动对焦模式用于拍摄照片。 相机不断尝试对焦。 焦点变化的速度比FOCUS_MODE_CONTINUOUS_VIDEO
更具侵略性。 自动对焦在参数设置时开始。
应用程序可以在此模式下调用autoFocus(AutoFocusCallback)
。 如果自动对焦正在扫描中,则焦点回调将在完成时返回。 如果自动对焦未扫描,焦点回调将立即返回一个布尔值,指示焦点是否清晰。 应用程序可以决定是要立即拍摄照片还是将对焦模式更改为自动,并运行完整的自动对焦周期。 自动对焦后,焦点位置锁定。 如果应用程序想要恢复连续对焦,则必须调用cancelAutoFocus。 重新启动预览将不会恢复连续的自动对焦。 要停止连续对焦,应用程序应将对焦模式更改为其他模式。
也可以看看:
常数值:“连续图片”
String FOCUS_MODE_CONTINUOUS_VIDEO
适用于视频录制的连续自动对焦模式。 相机不断尝试对焦。 这是视频录制的最佳选择,因为焦点变化平稳。 应用程序仍然可以在此模式下调用takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback)
,但主题可能不重点。 自动对焦在参数设置时开始。
由于API级别14,应用程序可以在此模式下调用autoFocus(AutoFocusCallback)
。 焦点回调将立即返回一个布尔值,指示焦点是否清晰。 自动对焦后,焦点位置锁定。 如果应用程序想要恢复连续对焦,则必须调用cancelAutoFocus。 重新启动预览将不会恢复连续的自动对焦。 要停止连续对焦,应用程序应将对焦模式更改为其他模式。
常数值:“连续视频”
String FOCUS_MODE_EDOF
扩展景深(EDOF)。 聚焦是数字化和连续完成的。 在这种模式下,应用程序不应该调用autoFocus(AutoFocusCallback)
。
常数值:“edof”
String FOCUS_MODE_FIXED
重点是固定的。 如果焦点不可调节,相机始终处于此模式。 如果相机具有自动对焦功能,此模式可以固定焦距,通常在超焦距范围内。 应用程序不应在此模式下调用autoFocus(AutoFocusCallback)
。
常数值:“固定”
String FOCUS_MODE_INFINITY
焦点设置在无穷远处。 在这种模式下,应用程序不应该调用autoFocus(AutoFocusCallback)
。
常数值:“无限”
String FOCUS_MODE_MACRO
微距(近摄)对焦模式。 应用程序应该调用autoFocus(AutoFocusCallback)
以在此模式下启动焦点。
常数值:“宏”
int PREVIEW_FPS_MAX_INDEX
用于 getPreviewFpsRange(int[])
或 getSupportedPreviewFpsRange()
的最大预览fps数组索引。
常数值:1(0x00000001)
int PREVIEW_FPS_MIN_INDEX
用于 getPreviewFpsRange(int[])
或 getSupportedPreviewFpsRange()
的最小预览fps数组索引。
常量值:0(0x00000000)
String SCENE_MODE_ACTION
拍摄快速移动的物体。 与SCENE_MODE_SPORTS
相同。
常数值:“动作”
String SCENE_MODE_BARCODE
应用程序正在寻找条形码。 相机驱动程序将针对条码读取进行优化。
常数值:“条形码”
String SCENE_MODE_HDR
使用高动态范围成像技术捕捉场景。 与常规捕捉相比,相机将返回具有扩展动态范围的图像。 捕获这样的图像可能需要比常规捕获更长的时间。
常数值:“hdr”
String SCENE_MODE_SPORTS
拍摄快速移动的物体。 与SCENE_MODE_ACTION
相同。
常值:“运动”
String SCENE_MODE_STEADYPHOTO
避免模糊的图片(例如,由于握手)。
常数值:“steadyphoto”
String WHITE_BALANCE_WARM_FLUORESCENT
恒定值:“温暖的荧光”
String flatten ()
创建一个包含此Parameters对象中设置的所有参数的单个字符串。
unflatten(String)
方法正好相反。
Returns | |
---|---|
String |
a String with all values from this Parameters object, in semi-colon delimited key-value pairs |
String get (String key)
返回String参数的值。
Parameters | |
---|---|
key |
String : the key name for the parameter |
Returns | |
---|---|
String |
the String value of the parameter |
String getAntibanding ()
获取当前的抗菌设置。
Returns | |
---|---|
String |
current antibanding. null if antibanding setting is not supported. |
boolean getAutoExposureLock ()
获取自动曝光锁的状态。 应用程序应该在使用此方法之前检查isAutoExposureLockSupported()
。 有关setAutoExposureLock(boolean)
的详细信息,请参阅setAutoExposureLock(boolean)
。
Returns | |
---|---|
boolean |
State of the auto-exposure lock. Returns true if auto-exposure is currently locked, and false otherwise. |
也可以看看:
boolean getAutoWhiteBalanceLock ()
获取自动白平衡锁定的状态。 在使用此方法之前,应用程序应检查isAutoWhiteBalanceLockSupported()
。 有关该锁的详细信息,请参阅setAutoWhiteBalanceLock(boolean)
。
Returns | |
---|---|
boolean |
State of the auto-white balance lock. Returns true if auto-white balance is currently locked, and false otherwise. |
String getColorEffect ()
获取当前的颜色效果设置。
Returns | |
---|---|
String |
current color effect. null if color effect setting is not supported. |
int getExposureCompensation ()
获取当前的暴露补偿指数。
Returns | |
---|---|
int |
current exposure compensation index. The range is getMinExposureCompensation() to getMaxExposureCompensation() . 0 means exposure is not adjusted. |
float getExposureCompensationStep ()
获取曝光补偿步骤。
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. |
String getFlashMode ()
获取当前的闪光模式设置。
Returns | |
---|---|
String |
current flash mode. null if flash mode setting is not supported. |
float getFocalLength ()
获取相机的焦距(以毫米为单位)。
Returns | |
---|---|
float |
the focal length. This method will always return a valid value. |
List<Camera.Area> getFocusAreas ()
获取当前的重点领域。 相机驱动程序使用这些区域来决定焦点。
在使用此API或setFocusAreas(List)
之前,应用程序应首先调用getMaxNumFocusAreas()
以了解最大重点区域数量。 如果值为0,则不支持焦点区域。
每个焦点区域都是一个具有指定重量的矩形。 方向与传感器方向有关,也就是传感器看到的方向。 方向不受setDisplayOrientation(int)
的旋转或镜像setDisplayOrientation(int)
。 矩形的坐标范围从-1000到1000.(-1000,-1000)是左上角的点。 (1000,1000)是右下角的点。 焦点区域的宽度和高度不能为0或负值。
重量必须介于1到1000之间。重量应解释为每像素重量 - 该区域中的所有像素都具有指定的重量。 这意味着与较大面积相同重量的小面积对于聚焦的影响将小于较大面积。 焦点区域可以部分重叠,司机会在重叠区域添加权重。
null
焦点区域列表的特殊情况意味着驾驶员可以自由选择焦点目标。 例如,驾驶员可以使用更多的信号来选择焦点区域并动态改变它们。 如果应用程序希望驱动程序完全控制对焦,则应用程序可以将焦点区域列表设置为null
。
重点领域是相对于当前视野( getZoom()
)。 无论缩放级别如何,(-1000,-1000)代表当前可见摄像机帧的顶部。 即使使用变焦,焦点区域也不能设置在当前视野外。
对焦区域只有影响,如果当前的对焦模式为 FOCUS_MODE_AUTO
, FOCUS_MODE_MACRO
, FOCUS_MODE_CONTINUOUS_VIDEO
,或 FOCUS_MODE_CONTINUOUS_PICTURE
。
Returns | |
---|---|
List<Camera.Area> |
a list of current focus areas |
void getFocusDistances (float[] output)
获取从相机到物体看起来聚焦的位置的距离。 物体在最佳焦距处最锐利。 景深是远焦点距离减去焦距附近。
焦距可以调用后更改autoFocus(AutoFocusCallback)
, cancelAutoFocus()
,或startPreview()
。 应用程序可以随时调用getParameters()
并使用此方法获取最新的焦点距离。 如果对焦模式为FOCUS_MODE_CONTINUOUS_VIDEO,则焦距可能会随时变化。
此方法旨在估计相机和拍摄对象之间的距离。 自动对焦后,被摄体距离可能在近距离和远距离范围内。 但是,精度取决于相机硬件,自动对焦算法,对焦区域和场景。 该错误可能很大,应该仅用作参考。
远对焦距离> =最佳对焦距离> =近对焦距离。 如果焦距为无穷大,则值将为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. |
String getFocusMode ()
获取当前的对焦模式设置。
Returns | |
---|---|
String |
current focus mode. This method will always return a non-null value. Applications should call autoFocus(AutoFocusCallback) to start the focus if focus mode is FOCUS_MODE_AUTO or FOCUS_MODE_MACRO. |
float getHorizontalViewAngle ()
以度数获取水平视角。
Returns | |
---|---|
float |
horizontal angle of view. This method will always return a valid value. |
int getInt (String key)
返回整数参数的值。
Parameters | |
---|---|
key |
String : the key name for the parameter |
Returns | |
---|---|
int |
the int value of the parameter |
int getJpegQuality ()
返回JPEG图片的质量设置。
Returns | |
---|---|
int |
the JPEG picture quality setting. |
int getJpegThumbnailQuality ()
返回Jpeg图片中EXIF缩略图的质量设置。
Returns | |
---|---|
int |
the JPEG quality setting of the EXIF thumbnail. |
Camera.Size getJpegThumbnailSize ()
返回Jpeg图片中EXIF缩略图的尺寸。
Returns | |
---|---|
Camera.Size |
a Size object with the height and width setting for the EXIF thumbnails |
int getMaxExposureCompensation ()
获取最大曝光补偿指数。
Returns | |
---|---|
int |
maximum exposure compensation index (>=0). If both this method and getMinExposureCompensation() return 0, exposure compensation is not supported. |
int getMaxNumDetectedFaces ()
获取支持的最大检测面数。 这是从Camera.FaceDetectionListener
返回的列表的最大长度。 如果返回值为0,则不支持指定类型的脸部检测。
Returns | |
---|---|
int |
the maximum number of detected face supported by the camera. |
也可以看看:
int getMaxNumFocusAreas ()
获取支持的最大焦点区域数量。 这是setFocusAreas(List)
和getFocusAreas()
列表的最大长度。
Returns | |
---|---|
int |
the maximum number of focus areas supported by the camera. |
也可以看看:
int getMaxNumMeteringAreas ()
获取支持的测量区域的最大数量。 这是setMeteringAreas(List)
和getMeteringAreas()
列表的最大长度。
Returns | |
---|---|
int |
the maximum number of metering areas supported by the camera. |
也可以看看:
int getMaxZoom ()
获取快照允许的最大缩放值。 这是应用程序可以设置为setZoom(int)
。 在使用此方法之前,应用程序应该调用isZoomSupported()
。 此值可能会在不同的预览大小中更改。 应用程序应该在设置预览大小后再次调用它。
Returns | |
---|---|
int |
the maximum zoom value supported by the camera. |
List<Camera.Area> getMeteringAreas ()
获取当前的测光区域。 相机驱动程序使用这些区域来决定曝光。
在使用此API或setMeteringAreas(List)
之前,应用程序应首先调用getMaxNumMeteringAreas()
以了解计量区域的最大数量。 如果该值为0,则不支持测光区域。
每个测光区域都是一个具有指定重量的矩形。 方向与传感器方向有关,也就是传感器看到的方向。 方向不受setDisplayOrientation(int)
的旋转或镜像setDisplayOrientation(int)
。 矩形的坐标范围从-1000到1000.(-1000,-1000)是左上角的点。 (1000,1000)是右下角的点。 计量区域的宽度和高度不能为0或负值。
重量必须在1到1000之间,并且表示该区域中每个像素的权重。 这意味着与较小面积相同重量的大型计量区域将对计量结果产生更大的影响。 测量区域可以部分重叠,司机将在重叠区域添加权重。
null
测量区域列表的一个null
意味着驾驶员可以自由选择仪表。 例如,驾驶员可以使用更多的信号来选择测量区域并动态改变它们。 如果应用程序希望驱动程序完全控制测光,则应用程序可以将测光区域列表设置为null
。
测光区域相对于当前视野( getZoom()
)。 无论缩放级别如何,(-1000,-1000)代表当前可见摄像机帧的顶部。 即使使用变焦,测光区域也不能设置在当前视场之外。
无论测量区域是什么,最终的曝光量都由 setExposureCompensation(int)
补偿。
Returns | |
---|---|
List<Camera.Area> |
a list of current metering areas |
int getMinExposureCompensation ()
获取最低曝光补偿指数。
Returns | |
---|---|
int |
minimum exposure compensation index (<=0). If both this method and getMaxExposureCompensation() return 0, exposure compensation is not supported. |
int getPictureFormat ()
返回图片的图片格式。
Returns | |
---|---|
int |
the picture format |
也可以看看:
Camera.Size getPictureSize ()
返回图片的尺寸设置。
Returns | |
---|---|
Camera.Size |
a Size object with the height and width setting for pictures |
Camera.Size getPreferredPreviewSizeForVideo ()
返回视频录制的首选或推荐预览大小(宽度和高度)(以像素为单位)。 摄像机应用程序应将预览大小设置为不大于首选预览大小的值。 换句话说,预览尺寸的宽度和高度的乘积不应大于首选预览尺寸的乘积。 另外,我们建议选择与要录制的视频分辨率相同的预览尺寸。
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. |
也可以看看:
int getPreviewFormat ()
返回从 Camera.PreviewCallback
获得的预览帧的图像格式。
Returns | |
---|---|
int |
the preview format. |
也可以看看:
void getPreviewFpsRange (int[] range)
返回当前最小和最大预览fps。 这些值是由getSupportedPreviewFpsRange()
返回的元素getSupportedPreviewFpsRange()
。
Parameters | |
---|---|
range |
int
|
Returns | |
---|---|
void |
range the minimum and maximum preview fps (scaled by 1000). |
int getPreviewFrameRate ()
此方法在API级别9中已弃用。
由getPreviewFpsRange(int[])
取代
返回接收预览帧的速率设置。 这是目标帧速率。 实际的帧速率取决于驱动程序。
Returns | |
---|---|
int |
the frame rate setting (frames per second) |
Camera.Size getPreviewSize ()
返回预览图片的尺寸设置。
Returns | |
---|---|
Camera.Size |
a Size object with the width and height setting for the preview picture |
String getSceneMode ()
获取当前场景模式设置。
Returns | |
---|---|
String |
one of SCENE_MODE_XXX string constant. null if scene mode setting is not supported. |
也可以看看:
SCENE_MODE_AUTO
SCENE_MODE_ACTION
SCENE_MODE_PORTRAIT
SCENE_MODE_LANDSCAPE
SCENE_MODE_NIGHT
SCENE_MODE_NIGHT_PORTRAIT
SCENE_MODE_THEATRE
SCENE_MODE_BEACH
SCENE_MODE_SNOW
SCENE_MODE_SUNSET
SCENE_MODE_STEADYPHOTO
SCENE_MODE_FIREWORKS
SCENE_MODE_SPORTS
SCENE_MODE_PARTY
SCENE_MODE_CANDLELIGHT
SCENE_MODE_BARCODE
List<String> getSupportedAntibanding ()
获取支持的抗菌值。
Returns | |
---|---|
List<String> |
a list of supported antibanding values. null if antibanding setting is not supported. |
也可以看看:
List<String> getSupportedColorEffects ()
获取支持的颜色效果。
Returns | |
---|---|
List<String> |
a list of supported color effects. null if color effect setting is not supported. |
也可以看看:
List<String> getSupportedFlashModes ()
获取支持的闪光灯模式。
Returns | |
---|---|
List<String> |
a list of supported flash modes. null if flash mode setting is not supported. |
也可以看看:
List<String> getSupportedFocusModes ()
获取支持的对焦模式。
Returns | |
---|---|
List<String> |
a list of supported focus modes. This method will always return a list with at least one element. |
也可以看看:
List<Camera.Size> getSupportedJpegThumbnailSizes ()
获取支持的jpeg缩略图大小。
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. |
List<Integer> getSupportedPictureFormats ()
获取支持的图片格式。
Returns | |
---|---|
List<Integer> |
supported picture formats. This method will always return a list with at least one element. |
也可以看看:
List<Camera.Size> getSupportedPictureSizes ()
获取支持的图片大小。
Returns | |
---|---|
List<Camera.Size> |
a list of supported picture sizes. This method will always return a list with at least one element. |
List<Integer> getSupportedPreviewFormats ()
获取支持的预览格式。 始终支持NV21
。 自API级别12以来,始终支持YV12
。
Returns | |
---|---|
List<Integer> |
a list of supported preview formats. This method will always return a list with at least one element. |
也可以看看:
List<int[]> getSupportedPreviewFpsRange ()
获取支持的预览fps(帧每秒)范围。 每个范围都包含最低fps和最高fps。 如果最小fps等于最大fps,则摄像机以固定帧速率输出帧。 如果不是,则摄像机以自动帧速率输出帧。 实际帧速率在最小值和最大值之间波动。 这些值乘以1000并以整数表示。 例如,如果帧速率是每秒26.623帧,则该值是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). |
List<Integer> getSupportedPreviewFrameRates ()
此方法在API级别9中已弃用。
由getSupportedPreviewFpsRange()
取代
获取支持的预览帧速率。
Returns | |
---|---|
List<Integer> |
a list of supported preview frame rates. null if preview frame rate setting is not supported. |
List<Camera.Size> getSupportedPreviewSizes ()
获取支持的预览大小。
Returns | |
---|---|
List<Camera.Size> |
a list of Size object. This method will always return a list with at least one element. |
List<String> getSupportedSceneModes ()
获取支持的场景模式。
Returns | |
---|---|
List<String> |
a list of supported scene modes. null if scene mode setting is not supported. |
也可以看看:
List<Camera.Size> getSupportedVideoSizes ()
获取MediaRecorder可以使用的支持的视频帧大小。
如果返回的列表不为空,则返回的列表将包含至少一个Size,并且如果摄像机用作视频源,则返回列表中的其中一个大小必须传递给摄像机应用程序的MediaRecorder.setVideoSize()。 在这种情况下,预览的大小可能与视频录制过程中录制的视频的分辨率不同。
Returns | |
---|---|
List<Camera.Size> |
a list of Size object if camera has separate preview and video output; otherwise, null is returned. |
List<String> getSupportedWhiteBalance ()
获取支持的白平衡。
Returns | |
---|---|
List<String> |
a list of supported white balance. null if white balance setting is not supported. |
也可以看看:
float getVerticalViewAngle ()
以度数获得垂直视角。
Returns | |
---|---|
float |
vertical angle of view. This method will always return a valid value. |
boolean getVideoStabilization ()
获取视频稳定的当前状态。 有关视频稳定性的详细信息,请参阅setVideoStabilization(boolean)
。
Returns | |
---|---|
boolean |
true if video stabilization is enabled |
String getWhiteBalance ()
获取当前的白平衡设置。
Returns | |
---|---|
String |
current white balance. null if white balance setting is not supported. |
int getZoom ()
获取当前缩放值。 这也适用于平稳缩放进行中。 使用此方法之前,应用程序应检查isZoomSupported()
。
Returns | |
---|---|
int |
the current zoom value. The range is 0 to getMaxZoom() . 0 means the camera is not zoomed. |
List<Integer> getZoomRatios ()
获取所有缩放值的缩放比例。 在使用此方法之前,应用程序应检查isZoomSupported()
。
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. |
boolean isAutoExposureLockSupported ()
如果支持自动曝光锁定,则返回true。 在尝试锁定自动曝光之前,应用程序应调用此设置。 有关setAutoExposureLock(boolean)
的详细信息,请参阅setAutoExposureLock(boolean)
。
Returns | |
---|---|
boolean |
true if auto-exposure lock is supported. |
也可以看看:
boolean isAutoWhiteBalanceLockSupported ()
如果支持自动白平衡锁定,则返回true。 在尝试锁定自动白平衡之前,应用程序应调用此设置。 有关该锁的详细信息,请参阅setAutoWhiteBalanceLock(boolean)
。
Returns | |
---|---|
boolean |
true if auto-white balance lock is supported. |
boolean isSmoothZoomSupported ()
如果支持平滑缩放,则返回true。 应用程序应在使用其他平滑缩放方法之前调用此方法
Returns | |
---|---|
boolean |
true if smooth zoom is supported. |
boolean isVideoSnapshotSupported ()
如果支持视频快照,则返回true。 也就是说,应用程序在录制过程中可以调用takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback)
。 拍摄照片后,应用程序不需要拨打startPreview()
。 预览将仍然有效。 除此之外,在拍摄过程中拍摄照片与正常拍摄照片相同。 与takePicture相关的所有设置和方法的工作原理完全相同。 例: getPictureSize()
, getSupportedPictureSizes()
, setJpegQuality(int)
, setRotation(int)
,和等等的图象将有EXIF报头。 FLASH_MODE_AUTO
和FLASH_MODE_ON
也仍然有效,但视频会记录闪光灯。
应用程序可以将快门回叫设置为空以避免快门声。 还建议将原始图片和视图回调设置为空以避免预览显示的中断。
所记录的视频的视野可能与所拍摄的图片的视野不同。 视频快照的最大大小可能小于常规静态捕捉的最大大小。 如果当前图片尺寸设置为高于视频快照可以支持的尺寸,则会以最大支持尺寸捕获图片。
Returns | |
---|---|
boolean |
true if video snapshot is supported. |
boolean isVideoStabilizationSupported ()
如果支持视频稳定,则返回true。 有关视频稳定性的详细信息,请参阅setVideoStabilization(boolean)
。
Returns | |
---|---|
boolean |
true if video stabilization is supported |
boolean isZoomSupported ()
如果支持缩放,则返回true。 应用程序应该在使用其他缩放方法之前调用它
Returns | |
---|---|
boolean |
true if zoom is supported. |
void set (String key, String value)
设置一个String参数。
Parameters | |
---|---|
key |
String : the key name for the parameter |
value |
String : the String value of the parameter |
void set (String key, int value)
设置一个整数参数。
Parameters | |
---|---|
key |
String : the key name for the parameter |
value |
int : the int value of the parameter |
void setAntibanding (String antibanding)
设置抗菌。
Parameters | |
---|---|
antibanding |
String : new antibanding value. |
也可以看看:
void setAutoExposureLock (boolean toggle)
设置自动曝光锁定状态。 使用此方法之前,应用程序应检查isAutoExposureLockSupported()
。
如果设置为true,相机自动曝光例程将立即暂停,直到锁定设置为false。 自动曝光锁定时,曝光补偿设置更改仍然生效。
如果自动曝光已被锁定,则将其设置为true将不起作用(驱动程序不会重新计算曝光值)。
停止预览与 stopPreview()
,或触发静态图像捕捉与 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback)
,不会改变锁。
例如,曝光补偿,自动曝光锁定和自动白平衡锁定可用于拍摄曝光包围的图像。
相机release()
被调用后,包括锁定状态在内的自动曝光状态将不会保持。 在open()
之后锁定自动曝光,但在第一次调用startPreview()
将不允许自动曝光程序运行,并可能导致严重曝光过度或曝光不足的图像。
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. |
也可以看看:
void setAutoWhiteBalanceLock (boolean toggle)
设置自动白平衡锁定状态。 在使用此方法之前,应用程序应检查isAutoWhiteBalanceLockSupported()
。
如果设置为true,相机自动白平衡例程将立即暂停,直到锁定设置为false。
如果自动白平衡已经锁定,再次将其设置为true将不起作用(驱动程序不会重新计算白平衡值)。
停止预览与 stopPreview()
,或触发静态图像捕捉与 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback)
,不会改变的锁。
如果设置了白平衡模式,则使用 setWhiteBalance(String)
更改白平衡模式会释放自动白平衡锁。
例如,曝光补偿,自动曝光锁定和自动白平衡锁定可用于拍摄曝光包围的图像。 摄像机release()
被调用后,自动白平衡状态(包括锁定状态)将不会保持。 锁定后自动白平衡open()
,但在第一次调用之前startPreview()
不允许自动白平衡程序在所有运行,并可能导致拍摄的图像严重不正确的颜色。
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. |
void setColorEffect (String value)
设置当前的颜色效果设置。
Parameters | |
---|---|
value |
String : new color effect. |
也可以看看:
void setExposureCompensation (int value)
设置曝光补偿索引。
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. |
void setFlashMode (String value)
设置闪光灯模式。
Parameters | |
---|---|
value |
String : flash mode. |
也可以看看:
void setFocusAreas (List<Camera.Area> focusAreas)
设置重点领域。 有关文档,请参见getFocusAreas()
。
Parameters | |
---|---|
focusAreas |
List : the focus areas |
也可以看看:
void setFocusMode (String value)
设置对焦模式。
Parameters | |
---|---|
value |
String : focus mode. |
也可以看看:
void setGpsAltitude (double altitude)
设置GPS高度。 这将被存储在JPEG EXIF标头中。
Parameters | |
---|---|
altitude |
double : GPS altitude in meters. |
void setGpsLatitude (double latitude)
设置GPS纬度坐标。 这将被存储在JPEG EXIF标头中。
Parameters | |
---|---|
latitude |
double : GPS latitude coordinate. |
void setGpsLongitude (double longitude)
设置GPS经度坐标。 这将被存储在JPEG EXIF标头中。
Parameters | |
---|---|
longitude |
double : GPS longitude coordinate. |
void setGpsProcessingMethod (String processing_method)
设置GPS处理方法。 该方法将存储在JPEG EXIF标头中长达31个字节的UTF-8字符串中。
Parameters | |
---|---|
processing_method |
String : The processing method to get this location. |
void setGpsTimestamp (long timestamp)
设置GPS时间戳。 这将被存储在JPEG EXIF标头中。
Parameters | |
---|---|
timestamp |
long : GPS timestamp (UTC in seconds since January 1, 1970). |
void setJpegQuality (int quality)
设置拍摄图片的Jpeg质量。
Parameters | |
---|---|
quality |
int : the JPEG quality of captured picture. The range is 1 to 100, with 100 being the best. |
void setJpegThumbnailQuality (int quality)
设置JPEG图片中EXIF缩略图的质量。
Parameters | |
---|---|
quality |
int : the JPEG quality of the EXIF thumbnail. The range is 1 to 100, with 100 being the best. |
void setJpegThumbnailSize (int width, int height)
在Jpeg图片中设置EXIF缩略图的尺寸。 如果应用程序将宽度和高度都设置为0,EXIF将不包含缩略图。
应用程序需要考虑显示方向。 请参阅setPreviewSize(int, int)
以供参考。
Parameters | |
---|---|
width |
int : the width of the thumbnail, in pixels |
height |
int : the height of the thumbnail, in pixels |
也可以看看:
void setMeteringAreas (List<Camera.Area> meteringAreas)
设置测光区域。 有关文档,请参见getMeteringAreas()
。
Parameters | |
---|---|
meteringAreas |
List : the metering areas |
也可以看看:
void setPictureFormat (int pixel_format)
设置图片的图片格式。
Parameters | |
---|---|
pixel_format |
int : the desired picture format (ImageFormat.NV21, ImageFormat.RGB_565, or ImageFormat.JPEG) |
也可以看看:
void setPictureSize (int width, int height)
设置图片的尺寸。
应用程序需要考虑显示方向。 请参阅setPreviewSize(int, int)
以供参考。
Parameters | |
---|---|
width |
int : the width for pictures, in pixels |
height |
int : the height for pictures, in pixels |
也可以看看:
void setPreviewFormat (int pixel_format)
设置预览图片的图像格式。
如果从未调用过,则默认格式为 NV21
,它使用NV21编码格式。
使用 getSupportedPreviewFormats()
获取可用预览格式的列表。
强烈建议使用 NV21
或 YV12
,因为它们受所有相机设备支持。
对于YV12,接收到的图像缓冲区不必紧密排列,因为每行像素数据的末尾可能会有填充,如YV12
。 对于相机回调数据,可以假定Y和UV数据的步幅是尽可能最小的,以满足对准要求。 也就是说,如果预览大小是宽度x高度 ,则以下等式描述Y平面的行y的开始和U和V平面的行c的缓冲区索引:
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) |
void setPreviewFpsRange (int min, int max)
设置最小和最大预览fps。 这控制了Camera.PreviewCallback
收到的预览帧的速率。 最小和最大预览fps必须是来自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. |
void setPreviewFrameRate (int fps)
此方法在API级别9中已弃用。
由setPreviewFpsRange(int, int)
取代
设置接收预览帧的速率。 这是目标帧速率。 实际的帧速率取决于驱动程序。
Parameters | |
---|---|
fps |
int : the frame rate (frames per second) |
void setPreviewSize (int width, int height)
设置预览图片的尺寸。 如果预览已经开始,应用程序应该在更改预览大小之前先停止预览。 宽度和高度的侧面基于相机的方向。 也就是说,预览大小是按显示方向旋转之前的大小。 因此,应用程序需要在设置预览大小时考虑显示方向。 例如,假设相机同时支持480x320和320x480预览尺寸。 该应用程序需要3:2预览比例。 如果显示方向设置为0或180,则应将预览尺寸设置为480x320。 如果显示方向设置为90或270,则应将预览尺寸设置为320x480。 设置图片尺寸和缩略图尺寸时,还应考虑显示方向。
Parameters | |
---|---|
width |
int : the width of the pictures, in pixels |
height |
int : the height of the pictures, in pixels |
void setRecordingHint (boolean hint)
设置录制模式提示。 这告诉相机应用程序的目的是记录视频start()
,而不是拍摄静止图片takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback)
。 使用此提示可以使MediaRecorder.start()启动得更快,或者输出上的毛刺更少。 这应该在开始预览以获得最佳结果之前调用,但可以在预览处于活动状态时进行更改。 默认值是false。 当提示为true时,应用程序仍然可以调用takePicture(),或者当提示为false时调用MediaRecorder.start()。 但表现可能会更糟。
Parameters | |
---|---|
hint |
boolean : true if the apps intend to record videos using MediaRecorder . |
void setRotation (int rotation)
设置相对于摄像机方向的顺时针旋转角度。 这会影响从JPEG Camera.PictureCallback
返回的图片。 相机驱动程序可以在不旋转图片的情况下在EXIF标头中设置方向。 或者驱动程序可能会旋转图片和EXIF缩略图。 如果旋转Jpeg图片,则EXIF标题中的方向将丢失或1(第0行为顶部,第#0列为左侧)。
如果应用程序想旋转图片以匹配用户看到的方向,应用程序应该使用OrientationEventListener
和Camera.CameraInfo
。 OrientationEventListener的值与设备的自然方向有关。 CameraInfo.orientation是相机方向与自然设备方向之间的角度。 两者的总和就是后置摄像头的旋转角度。 两者的区别在于前置摄像头的旋转角度。 请注意,前置摄像头的JPEG图像不会像预览显示中那样被镜像。
例如,假设设备的自然方向是纵向。 该设备顺时针旋转270度,因此设备方向为270.假设背面照相机传感器安装在横向上,并且照相机传感器的顶部与自然方向的显示器右边缘对齐。 因此相机方向为90.旋转角度应设为0(270 + 90)。
参考代码如下。
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. |
void setSceneMode (String value)
设置场景模式。 更改场景模式可能会覆盖其他参数(如闪光模式,对焦模式,白平衡)。 例如,假设最初的闪光模式开启,并且支持的闪光模式开启/关闭。 在夜景模式下,闪光灯模式和支持的闪光灯模式可能会更改为关闭。 设置场景模式后,应用程序应调用getParameters以了解是否更改了某些参数。
Parameters | |
---|---|
value |
String : scene mode. |
也可以看看:
void setVideoStabilization (boolean toggle)
启用和禁用视频稳定。 使用isVideoStabilizationSupported()
来确定调用此方法是否有效。
视频稳定功能可减少由于摄像头在预览视频流和录制的视频中的移动而产生的震动,包括从预览回调中收到的数据。 它不会减少用takePicture
拍摄的图像中的运动模糊。
在预览或录制处于活动状态时,可以启用和禁用视频稳定功能,但切换它可能会导致视频流中的跳转,这可能在录制的视频中不受欢迎。
Parameters | |
---|---|
toggle |
boolean : Set to true to enable video stabilization, and false to disable video stabilization. |
void setWhiteBalance (String value)
设置白平衡。 改变设置将释放自动白平衡锁定。 建议不要同时更改白平衡和AWB锁定。
Parameters | |
---|---|
value |
String : new white balance. |
void setZoom (int value)
设置当前的缩放值。 如果照相机变焦(数值> 0),实际的照片尺寸可能会小于照片尺寸设置。 从Camera.PictureCallback
返回图片后,应用程序可以检查实际的图片大小。 预览尺寸在缩放中保持不变。 在使用此方法之前,应用程序应检查isZoomSupported()
。
Parameters | |
---|---|
value |
int : zoom value. The valid range is 0 to getMaxZoom() . |
void unflatten (String flattened)
采用扁平化的参数串并将每个参数添加到此参数对象。
flatten()
方法正好相反。
Parameters | |
---|---|
flattened |
String : a String of parameters (key-value paired) that are semi-colon delimited |