【发布时间】:2013-01-14 12:39:37
【问题描述】:
我有这个功能可以为我的相机应用程序添加缩放控制。这个函数是从 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);
}
【问题讨论】:
-
根据文档,您应该检查
params.isSmoothZoomSupported()以查看Camera.startSmoothZoom(..)是否可用。 -
是的,这就是问题所在。不支持平滑缩放。因此,我们必须调用 setZoom(),然后调用 camera.setparams,而不是 startSmoothZoom()。请添加您的评论作为答案,然后我可以接受。谢谢
-
Harism plzz 如果它适用于定制相机,请提供完整的。
-
preetha plzz 如果它适用于定制相机,请提供完整的。
-
@preetha 嗨,我还想在我的应用中添加缩放功能,创建了自定义相机,但我有一些小问题,你能帮帮我吗?
标签: android camera zooming customization