android被弃用的Camera开发相关API的功能

前言:

        从android5.0以来,新增了Camera2  API/       但由于项目需求需要对Camera进行开发一个功能,废话不多说请看下面的书面语。仅供参考不存在指导意义、望见谅。

    Camera camera;

 

    在开始Camera开发之前先普及一下Camera能做到的功能有哪些,

开启、camera.open();

关闭、camera.stopPreview();

旋转预览画面 camera.setDisplyOrientation(int)正常的都需要旋转90

获取拍摄的照片takePicture( shutterCallback,rawCallback,jpegCallback)

  Camera.Parameters parameters;

设置图片的格式 parameters.setPictureFormat(PixelFormat.常量)系统默认是 

设置照片的大小 parameters.setPictureSize(with,height);   需要获取支持的参数 parameters .getSupportedPictureSizes();

设置预览大小(分辨率大小) paramnters.setPreviewSize(with,height);  需要获取可用的参数  parameters.getSupportedPreviewSize();

 

对焦  parameters.ssetFocusMode(parameters.常量);

闪光灯 parameters.setFlashMode(Camera.Parameters.FLASH_MODE_ON);//FLASH_MODE_OFF

焦距(即镜头的远近)parameters.setZoom(int); //设置之前最好获取一下Zoom的范围 不同的机子的摄像头Zoom不一样

设置拍照场景 parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_DAYLIGHT);

其他的功能就不一一列举了,自行百度,

最后将parameters 设置到camera里面 camera.setParameters(parameters);

开启预览  camera.startPreview();

设置自动对焦 camera.autoFocus(new Camera.AutoFocusCallback(){});

最后说一点,就是设置预览大小时,参数必须是获取的参数列表里面有的,否则出现设置异常、预览如果变形是SurfaceView的大小设置和 预览大小设置 和照片的大小设置有关、他们之间的比例需要一致。 

关于Camera回传 出现的回传对象byte[ ]   data重用 

camera.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
    @Override
    public void onPreviewFrame(byte[] data, Camera camera) {
            //Log.w("PREVIEWS","data3 ="+data.length+"   "+isSave);//System.currentTimeMillis()+
            if(isSave){
                numberData++;
                mSaveByte = new byte[data.length];
                mSaveByte = data.clone();
                //mSaveByte = data;
                saveBytes.add(mSaveByte);
                Log.w("PREVIEWS","numberData= "+numberData+"data = "+data+"  mSaveByte"+mSaveByte+  "  time ="+System.currentTimeMillis());
                //handler.sendEmptyMessage(MSG_VALUE_SAVE_PNG);
            }
       camera.addCallbackBuffer(data);
    }
});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值