【问题标题】:Manual focus in camera2, androidcamera2,android中的手动对焦
【发布时间】:2015-03-26 01:38:32
【问题描述】:

我正在寻找一个在 android 的 camera2 中手动对焦的示例。 我试图获得如下所示的最小焦距和可用焦距,但这没有帮助。如何控制焦距?

float minimumLens = characteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);

float[] lensDistances = characteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS); 

我需要用 seekbar 来控制它。 提前致谢。

【问题讨论】:

    标签: android camera camera2


    【解决方案1】:
     switch (seekBar.getId()) {
                case R.id.sb_focus:
                    float minimumLens = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_MINIMUM_FOCUS_DISTANCE);
                    float num = (((float) i) * minimumLens / 100);
                    mPreviewBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, num);
                    int showNum = (int) num;
                    mSeekBarTextView.setText("focus:" + showNum);
                    break;}
    

    小心,CONTROL_AF_MODE 应该关闭。
    https://github.com/pinguo-yuyidong/Camera2/blob/master/app/src/main/java/us/yydcdut/androidltest/ui/DisplayFragment.java
    第 1109 行代码

    【讨论】:

    • 单个区域的手动对焦怎么样?我该怎么做?
    • @yydcdut:不幸的是,此解决方案不适用于三星 Galaxy S7。虽然我没有在任何其他三星手机上尝试过,但我强烈怀疑大多数三星手机都存在这个问题。
    • 只是为了以后的读者,我相信你想要的这个示例代码:mPreviewBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, minimumLens);目前尚不清楚 num 究竟是什么,但它与焦距的百分比有关,可能与 seekBar 相关。
    • 什么是“i”变量?
    • @SebastienFerrand "i" 是搜索栏进度
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多