本文介绍了变焦控制相机未在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发生。
解决方案
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平台的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!