我添加了以下代码来实现放大相机。在 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
}