相机2中的手动对焦,安卓

10

我正在寻找一个关于Android Camera2中手动对焦的示例。我尝试获取下面显示的最小对焦距离和可用对焦长度,但并没有帮助。如何控制对焦距离?

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

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

我需要用拖动条控制它。 先行致谢。

1个回答

9
 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 应该为 OFF。


https://github.com/pinguo-yuyidong/Camera2/blob/master/app/src/main/java/us/yydcdut/androidltest/ui/DisplayFragment.java

第 1109 行代码。


单个区域的手动对焦怎么样?我该怎么做? - user0770
@yydcdut:不幸的是,这个解决方案在三星Galaxy S7上不起作用。虽然我没有在其他任何三星手机上尝试过,但我强烈怀疑大多数三星手机都会遇到这个问题。 - unshul
1
仅供未来读者参考,我认为在这个示例代码中,您想要的是:mPreviewBuilder.set(CaptureRequest.LENS_FOCUS_DISTANCE, minimumLens)。 不清楚num到底是什么,但它与焦距百分比有关,可能是用于SeekBar。 - jranalli
"i" 变量是什么? - Sebastien Ferrand
@SebastienFerrand,“i” 是进度条的进度。 - c_sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接