变焦控制相机未在Android平台 [英] Zoom Control in Camera is not working in Android
本文介绍了变焦控制相机未在Android平台的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在自定义相机使用的工作表面观在我的应用程序,还录制视频屏幕捕获。
我期待实现缩放控制在我的相机code,但没有得到成功。
获得这个日志变焦:
E / Adreno200的-ES20(12756):其中,qgl2DrvAPI_glBufferSubData:709计算值:GL_INVALID_OPERATION
我使用低于code:
/ **
* setZoomControl
* @参数PARAMS
* /
公共无效setZoomControl(Camera.Parameters PARAMS){
paramtrs =参数;
ZoomControls zoomControls =(ZoomControls)findViewById(R.id.zoomcontrols); 如果(params.isZoomSupported()){
最终诠释maxZoomLevel = paramtrs.getMaxZoom();
Log.i(最大ZOOM,是+ maxZoomLevel); zoomControls.setIsZoomInEnabled(真);
zoomControls.setIsZoomOutEnabled(真); zoomControls.setOnZoomInClickListener(新OnClickListener(){
公共无效的onClick(视图v){
INT currentZoomLevel = 0;
如果(currentZoomLevel< maxZoomLevel){
currentZoomLevel ++;
camera.startSmoothZoom(currentZoomLevel);
}
}
}); zoomControls.setOnZoomOutClickListener(新OnClickListener(){
公共无效的onClick(视图v){
INT currentZoomLevel = 0;
如果(currentZoomLevel大于0){
currentZoomLevel--;
camera.startSmoothZoom(currentZoomLevel);
}
}
});
}其他
zoomControls.setVisibility(View.GONE);
}
请给我建议什么在我的code发生。
解决方案
您可以使用此code
块引用>如果(params.isZoomSupported()){
最终诠释maxZoomLevel = params.getMaxZoom();
Log.i(最大ZOOM,是+ maxZoomLevel);
zoomControls.setIsZoomInEnabled(真);
zoomControls.setIsZoomOutEnabled(真); zoomControls.setOnZoomInClickListener(新OnClickListener(){
公共无效的onClick(视图v){
如果(currentZoomLevel< maxZoomLevel){
currentZoomLevel ++;
//mCamera.startSmoothZoom(currentZoomLevel);
params.setZoom(currentZoomLevel);
mCamera.setParameters(PARAMS);
}
}
}); zoomControls.setOnZoomOutClickListener(新OnClickListener(){
公共无效的onClick(视图v){
如果(currentZoomLevel大于0){
currentZoomLevel--;
params.setZoom(currentZoomLevel);
mCamera.setParameters(PARAMS);
}
}
});
}
其他
zoomControls.setVisibility(View.GONE);I am working on Custom Camera using Surface view in my application, also recording Video with screen Capture.
I am looking to implement Zoom Control in my Camera Code but not getting success.
Getting this log while Zooming:
E/Adreno200-ES20(12756): <qgl2DrvAPI_glBufferSubData:709>: GL_INVALID_OPERATION
I am using below code:
/** * setZoomControl * @param params */
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); }
Please suggest me whats happening in my code.
解决方案You can use this code
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);
这篇关于变焦控制相机未在Android平台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文