摄像头中的变焦控制在Android中不起作用
我正在使用我的应用程序中的Surface view开发定制相机,还使用屏幕截图录制视频 我希望在我的相机代码中实现变焦控制,但没有成功 缩放时获取此日志:摄像头中的变焦控制在Android中不起作用,android,camera,zooming,Android,Camera,Zooming,我正在使用我的应用程序中的Surface view开发定制相机,还使用屏幕截图录制视频 我希望在我的相机代码中实现变焦控制,但没有成功 缩放时获取此日志: E/Adreno200-ES20(12756): <qgl2DrvAPI_glBufferSubData:709>: GL_INVALID_OPERATION E/Adreno200-ES20(12756)::GL\U操作无效 我正在使用以下代码: /** *设置ZoomControl *@param params */ pu
E/Adreno200-ES20(12756): <qgl2DrvAPI_glBufferSubData:709>: GL_INVALID_OPERATION
E/Adreno200-ES20(12756)::GL\U操作无效
我正在使用以下代码:
/**
*设置ZoomControl
*@param params
*/
public void设置ZoomControl(Camera.Parameters参数){
paramtrs=params;
ZoomControl ZoomControl=(ZoomControl)findViewById(R.id.ZoomControl);
if(params.isZoomSupported()){
final int maxZoomLevel=paramtrs.getMaxZoom();
Log.i(“最大缩放”,“is”+最大缩放级别);
ZoomControl.setIsZoomInEnabled(真);
ZoomControl.setIsZoomOutEnabled(真);
setOnZoomInClickListener(新的OnClickListener()){
公共void onClick(视图v){
int currentZoomLevel=0;
如果(currentZoomLevel0){
当前缩放级别--;
照相机。开始平滑缩放(当前缩放级别);
}
}
});
}否则
ZoomControl.setVisibility(View.GONE);
}
请告诉我代码中发生了什么
您可以使用此代码
if(params.isZoomSupported()){
final int maxZoomLevel=params.getMaxZoom();
Log.i(“最大缩放”,“is”+最大缩放级别);
ZoomControl.setIsZoomInEnabled(真);
ZoomControl.setIsZoomOutEnabled(真);
setOnZoomInClickListener(新的OnClickListener()){
公共void onClick(视图v){
如果(currentZoomLevel0){
当前缩放级别--;
参数设置缩放(当前缩放级别);
mCamera.setParameters(参数);
}
}
});
}
其他的
ZoomControl.setVisibility(View.GONE);
您可以使用此代码
if(params.isZoomSupported()){
final int maxZoomLevel=params.getMaxZoom();
Log.i(“最大缩放”,“is”+最大缩放级别);
ZoomControl.setIsZoomInEnabled(真);
ZoomControl.setIsZoomOutEnabled(真);
setOnZoomInClickListener(新的OnClickListener()){
公共void onClick(视图v){
如果(currentZoomLevel0){
当前缩放级别--;
参数设置缩放(当前缩放级别);
mCamera.setParameters(参数);
}
}
});
}
其他的
ZoomControl.setVisibility(View.GONE);
public void setZoomControl(Camera.Parameters params) {
paramtrs = params;
ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
if (params.isZoomSupported()) {
final int maxZoomLevel = paramtrs.getMaxZoom();
Log.i("max ZOOM ", "is " + maxZoomLevel);
zoomControls.setIsZoomInEnabled(true);
zoomControls.setIsZoomOutEnabled(true);
zoomControls.setOnZoomInClickListener(new OnClickListener() {
public void onClick(View v) {
int currentZoomLevel = 0;
if (currentZoomLevel < maxZoomLevel) {
currentZoomLevel++;
camera.startSmoothZoom(currentZoomLevel);
}
}
});
zoomControls.setOnZoomOutClickListener(new OnClickListener() {
public void onClick(View v) {
int currentZoomLevel = 0;
if (currentZoomLevel > 0) {
currentZoomLevel--;
camera.startSmoothZoom(currentZoomLevel);
}
}
});
} else
zoomControls.setVisibility(View.GONE);
}
if (params.isZoomSupported()) {
final int 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++;
//mCamera.startSmoothZoom(currentZoomLevel);
params.setZoom(currentZoomLevel);
mCamera.setParameters(params);
}
}
});
zoomControls.setOnZoomOutClickListener(new OnClickListener(){
public void onClick(View v){
if(currentZoomLevel > 0){
currentZoomLevel--;
params.setZoom(currentZoomLevel);
mCamera.setParameters(params);
}
}
});
}
else
zoomControls.setVisibility(View.GONE);