3

カメラアプリにズームコントロールを追加するこの機能があります。この関数は surfaceChanged() から呼び出されます

しかし、多くのデバイスでは、ズームアウト/ズームインのために + / - を押しても効果がありません。これらのデバイスは Zoom をサポートしています。また、コードは 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 に答える