Shilton Saha
Shilton Saha

Reputation: 19

How to create touch focus in camera app on android studio?

Can anyone please tell me how can I create a focus of image on touch event in android studio?

Upvotes: 0

Views: 1685

Answers (1)

Raza Ali Poonja
Raza Ali Poonja

Reputation: 1106

You can use this method

public class CameraPreview implements SurfaceHolder.Callback {

    // some code here

    AutoFocusCallback myAutoFocusCallback = new AutoFocusCallback(){

        @Override
        public void onAutoFocus(boolean arg0, Camera arg1) {
            if (arg0){
                mCamera.cancelAutoFocus();      
            }
        }
    };

    /**
     * Called from PreviewSurfaceView to set touch focus.
     * @param - Rect - new area for auto focus
     */
    public void doTouchFocus(final Rect tfocusRect) {
        try {
            List<Camera.Area> focusList = new ArrayList<Camera.Area>();
            Camera.Area focusArea = new Camera.Area(tfocusRect, 1000);
            focusList.add(focusArea);

            Camera.Parameters param = mCamera.getParameters();
            param.setFocusAreas(focusList);
            param.setMeteringAreas(focusList);
            mCamera.setParameters(param);

            mCamera.autoFocus(myAutoFocusCallback);
        } catch (Exception e) {
            e.printStackTrace();
            Log.i(TAG, "Unable to autofocus");
        }
    }

}

Here is the Tutorial http://www.jayrambhia.com/blog/android-touchfocus/

Upvotes: 1

Related Questions