3

我有这个功能可以为我的相机应用程序添加缩放控制。这个函数是从surfaceChanged()调用的

但在许多设备上按 + / - 缩小/缩小显示没有效果。这些设备支持缩放。代码也在 Sony xperia 上运行,所以代码必须是正确的。

请帮我修复它。还有什么我需要做的。

public void setZoomControl(Camera.Parameters params) {
    ZoomControls zoomControls = (ZoomControls) findViewById(R.id.CAMERA_ZOOM_CONTROLS);

    if (params.isZoomSupported()) {
        maxZoomLevel = params.getMaxZoom();
        Log.i("max ZOOM ", "is " + maxZoomLevel);
        ;

        zoomControls.setIsZoomInEnabled(true);
        zoomControls.setIsZoomOutEnabled(true);

        zoomControls.setOnZoomInClickListener(new OnClickListener() {
            public void onClick(View v) {
                if (currentZoomLevel < maxZoomLevel) {
                    currentZoomLevel++;
                    camera.startSmoothZoom(currentZoomLevel);
                }
            }
        });

        zoomControls.setOnZoomOutClickListener(new OnClickListener() {
            public void onClick(View v) {
                if (currentZoomLevel > 0) {
                    currentZoomLevel--;
                    camera.startSmoothZoom(currentZoomLevel);
                }
            }
        });
    } else
        zoomControls.setVisibility(View.GONE);
}
4

1 回答 1

1

我解决了这个问题。

不要使用 startSmoothZoom() 方法

Camera.Parameters params = camera.getParameters();
params.setZoom(zoom_value);
camera.setParameters(params);
于 2017-02-26T19:06:02.173 回答