相机变焦不起作用

use*_*813 1 android android-camera

我正在使用API​​ 2.1,我的调试显示最大缩放值为15.此处的代码不会使相机变焦.如何让相机变焦?

camera = Camera.open();
Camera.Parameters parameters = camera.getParameters();
parameters.set("orientation", "portrait");
parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_TWILIGHT);
int zoom = parameters.getMaxZoom();
Log.d(TAG, "Zoom " + zoom);
parameters.setZoom(15);
camera.setParameters(parameters);
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 9

此功能取决于您的Android版本.方法parameters.getMaxZoom()自从出现以来:API Level 8(Android 2.2),因此如果您使用Android 2.1,则此代码将无效.另一件事.您应该使用像参数这样的最大缩放.setZoom(zoom); 而是使用常量参数.setZoom(15);

您还需要检查该用户的设备是否支持缩放.你可以这样做(仅适用于Android 2.2及更高版本)

   Camera.Parameters parameters = camera.getParameters();
   int maxZoom = parameters.getMaxZoom(); 
   if (parameters.isZoomSupported()) {
      if (zoom >=0 && zoom < maxZoom) {
        parameters.setZoom(zoom);
      } else {
        // zoom parameter is incorrect
      }
   }
Run Code Online (Sandbox Code Playgroud)

但据我所知,Android 2.1中没有用于设置缩放的标准API,我仍在研究这个问题.