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

10-24 21:26