Search code examples
androidcameracamera2

Manual focus in camera2, android


i am looking for an example of manual focus in camera2 in android. I tried to get minimum focus distance and available focal lengths shown below, but it didn't help. How to control the focus distance ?

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

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

I need to control it with seekbar. Thanks in advance.


Solution

  •  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;}
    

    be careful ,CONTROL_AF_MODE should be OFF.
    https://github.com/pinguo-yuyidong/Camera2/blob/master/app/src/main/java/us/yydcdut/androidltest/ui/DisplayFragment.java
    code in Line 1109