android – 实现点击焦点在Camera2 API

前端之家收集整理的这篇文章主要介绍了android – 实现点击焦点在Camera2 API前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的自定义相机中实现轻拍对焦功能.
这是Google https://github.com/googlesamples/android-Camera2Basic提供的基本代码

这是代码片段,我认为我应该添加我的功能
如果有人实现了Camera2 API,请帮忙!

private void lockFocus() {
    try {
        // This is how to tell the camera to lock focus.
        mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,CameraMetadata.CONTROL_AF_TRIGGER_START);
        // Tell #mCaptureCallback to wait for the lock.
        mState = STATE_WAITING_LOCK;
        mCaptureSession.capture(mPreviewRequestBuilder.build(),mCaptureCallback,mBackgroundHandler);
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }
}

解决方法

您需要将自动对焦和自动曝光区域设置为用户轻按的区域.

钥匙是CONTROL_AF_REGIONSCONTROL_AE_REGIONS.

它们的单位在传感器active array coordinate system中,因此您必须从UI触摸坐标转换为相对于预览视图的坐标,并从那里转换到活动的阵列坐标.

如果您的预览的宽高比与传感器的宽高比一致,那就很简单;如果没有,您将必须调整完成的裁剪以创建预览输出.关于裁剪如何工作的最佳图表当前为here.请注意,如果您还应用缩放,您还需要在计算中包含缩放因子.

计算该区域后,您可能需要将AF模式设置为AUTO(而不是通常用于正常预览的CONTINUOUS_PICTURE),然后触发AF.一旦您收敛AF(在捕获结果中查看AF状态,请等待AF_STATE_FOCUSED_LOCKED),您很乐意拍摄一幅关注焦点的图片.如果要在一段时间后返回正常操作或用户取消对焦的触摸,请将AF模式切换回CONTINUOUS_PICTURE.

原文链接:https://www.f2er.com/android/310307.html

猜你在找的Android相关文章