java对焦_Java Camera.cancelAutoFocus方法代码示例

import android.hardware.Camera; //导入方法依赖的package包/类

/**

* 在摄像头启动前设置参数

*

* @param camera

* @param width

* @param height

*/

private void setCameraParams(Camera camera, int width, int height) {

// 获取摄像头支持的pictureSize列表

Camera.Parameters parameters = camera.getParameters();

List pictureSizeList = parameters.getSupportedPictureSizes();

// 从列表中选择合适的分辨率

Point pictureSize = FaceUtil.findBestResolution(pictureSizeList, new Point(width, height), true, 0.15f);

// 根据选出的PictureSize重新设置SurfaceView大小

parameters.setPictureSize(pictureSize.x, pictureSize.y);

// 获取摄像头支持的PreviewSize列表

List previewSizeList = parameters.getSupportedPreviewSizes();

Point preSize = FaceUtil.findBestResolution(previewSizeList, new Point(width, height), false, 0.15f);

parameters.setPreviewSize(preSize.x, preSize.y);

float w = preSize.x;

float h = preSize.y;

float scale = 1.0f;

int tempW = (int) (height * (h / w));

int tempH = (int) (width * (w / h));

if (tempW >= width) {

setLayoutParams(new FrameLayout.LayoutParams(tempW, height));

scale = tempW / h;

} else if (tempH >= height) {

setLayoutParams(new FrameLayout.LayoutParams(width, tempH));

scale = tempH / w;

} else {

setLayoutParams(new FrameLayout.LayoutParams(width, height));

}

if (mFaceDetector != null) {

mFaceDetector.setZoomRatio(5f * scale);

mFaceDetector.setPreviewWidth((int) w);

mFaceDetector.setPreviewHeight((int) h);

}

parameters.setJpegQuality(100);

if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {

// 连续对焦

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);

}

camera.cancelAutoFocus();

setCameraDisplayOrientation();

camera.setParameters(parameters);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值