Android知识Android开发Android技术知识

Android:相机开发

2017-07-06  本文已影响197人  thiagooo0

权限

<uses-permission android:name="android.permission.CAMERA"></uses-permission>  
//自动对焦的权限
<uses-feature android:name="android.hardware.camera.autofocus" />  

通过surfaceView显示系统摄像头

1,设置SurfaceViewCallback()监听surfaceview的状态

surfaceView.getHolder().addCallback(...)

2,在callback中的各个方法里面,操作相机

在surfaceCreated(SurfaceHolder holder)方法中创建相机

camera = android.hareware.Camera.open();
//这个方法必须在startPreview方法前调用
camera.setPreviewDisplay(holder);

android.hardware.Camera.Parameters parameters = camera.getParameters();

//一些设置,可以不设
//分辨率
parameters.setPreviewSize(200, 200);
//每秒从摄像头捕获5帧画面
parameters.setPreviewFrameRate(20);
//照片输出格式
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);

//开启前置摄像头
camera.startPreview();

在surfaceview销毁的时候释放摄像头

camera.stopPreview();
camera.release();

拍照

//后两个参数都是一个返回byte[]的回调。byte[]可以自行转换为图片。
takePicture(ShutterCallback shutter, PictureCallback raw, PictureCallback jpeg) 

自动对焦

autoFocus(),这个方法必须在startPreview和stopPreview()中间。
autoFocus()会提供一个回调接口,当对焦成功后,会调用此接口

参考资料

上一篇 下一篇

猜你喜欢

热点阅读