Android 操作相机增大或减少焦距的方法

阿木木 阿木木 | 355 | 2023-02-25
    /**
     * 焦距增大
     */
    public void addFocus(int cameraFocalValue) {

        if (mCamera.getParameters().isSmoothZoomSupported()) {
            Log.i("焦距", "不支持变焦");
            return;
        }
        Camera.Parameters parameters = mCamera.getParameters();
        final int maxZoom = parameters.getMaxZoom();
        Log.i("焦距", "最大支持值" + maxZoom);
        final int nowZoom = parameters.getZoom();//当前焦距
        Log.i("焦距", "当前焦距" + nowZoom);
        int setZoomValue = maxZoom * cameraFocalValue / 10;
        Log.i("焦距", "设置焦距" + setZoomValue);
        parameters.setZoom(setZoomValue);

        List<String> focusModes = parameters.getSupportedFocusModes();
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        } else if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
        }
        parameters.setPreviewFormat(ImageFormat.NV21);
        mCamera.setParameters(parameters);
    }

   /**
     * 焦距减少
     */
    public void reduceFocal(int cameraFocalValue) {

        if (mCamera.getParameters().isSmoothZoomSupported()) {
            Log.i("焦距", "不支持变焦");
            return;
        }
        Camera.Parameters parameters = mCamera.getParameters();
        final int maxZoom = parameters.getMaxZoom();
        Log.i("焦距", "最大支持值" + maxZoom);
        final int nowZoom = parameters.getZoom();//当前焦距
        Log.i("焦距", "当前焦距" + nowZoom);
        int setZoomValue = maxZoom * cameraFocalValue / 10;
        Log.i("焦距", "设置焦距" + setZoomValue);
        parameters.setZoom(setZoomValue);

        List<String> focusModes = parameters.getSupportedFocusModes();
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        } else if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
        }

        parameters.setPreviewFormat(ImageFormat.NV21);
        mCamera.setParameters(parameters);
    }
文章标签: Android
推荐指数:

真诚点赞 诚不我欺~

Android 操作相机增大或减少焦距的方法

点赞 收藏 评论