Android Custom Camera getMaxZoom() 在 S2 中返回零



我添加了以下代码来实现放大相机。在 S2 中,getMaxZoom() 返回零并在其他设备中工作。S2设备相机也能够变焦。

private void handleZoom(MotionEvent event, Camera.Parameters params) {
        int maxZoom = params.getMaxZoom();
        int zoom = params.getZoom();
        Log.d(LOG_TAG, "maxZoom "+maxZoom);
        Log.d(LOG_TAG, "zoom "+zoom);
        float newDist = getFingerSpacing(event);
        if (newDist > mDist) {
            Log.d(LOG_TAG, "handleZoom 1");
            // zoom in
            if (zoom < maxZoom)
                zoom++;
        } else if (newDist < mDist) {
            Log.d(LOG_TAG, "handleZoom 2");
            // zoom out
            if (zoom > 0)
                zoom--;
        }
        mDist = newDist;
        params.setZoom(zoom);
        Log.d(LOG_TAG, "handleZoom 3 "+zoom);
        mCamera.setParameters(params);
    }

在某些情况下,特定设备可能不支持用于缩放的 Api。

使用 params.isSmoothZoomSupported() 查看它是否支持它运行的设备,您可以围绕它编写代码。

if(params.isSmoothZoomSupported()){
//zoom
}else{
//handle if its not supported
}