我有这个函数来为我的相机应用添加缩放控制。这个函数是从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);
}