简介
因工作原因要学习Android的Camera预览功能,这个DEMO有两个Activity,使用Camera库实现
项目地址https://github.com/haowenlai2008/CameraPreview
代码参考了这个老哥https://dotblogs.com.tw/alonstar/2011/06/08/android_camera
Camera预览使用SurfaceView和Camera类,让它们两个联系起来并开启预览的比较关键的代码:
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
其实就是这两行,把SurfaceView的holder设置到Camera上,开启预览就OK了
最关键的两个工作
- 设置SurfaceView的回调
private void initView() {
surfaceView = findViewById(R.id.surfaceView);
mSurfaceHolder = surfaceView.getHolder();
mSurfaceHolder.addCallback(this);
}
让当前Activity实现Surface.Callback接口,让mSurfaceHolder绑定当前Activity作为回调
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
//检查权限
if (ContextCompat.checkSelfPermission(TestActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
} else {
CameraOpen();
}
}
@Override