我有这个功能可以将缩放控制添加到我的相机应用程序。从中调用此函数 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);
}
答案 0 :(得分:1)
我解决了这个问题。
不要使用startSmoothZoom()方法
Camera.Parameters params = camera.getParameters();
params.setZoom(zoom_value);
camera.setParameters(params);