1)自定义Surfaceview 实现圆形预览界面
@Override
//绘制一个圆形的框,并设置圆框的坐标和半径大小
public void draw(Canvas canvas) {
Path path =new Path();
path.addCircle(widthSize /2,screenHeight /2,widthSize /2 -200, Path.Direction.CCW);
canvas.clipPath(path, Region.Op.REPLACE);
super.draw(canvas);
}
ps:必须在xml布局中设置背景为白色透明 #ffffffff
2)初始化SurfaceView,implements SurfaceHolder.Callback
重写 surfaceCreated,surfaceChanged,surfaceDestroyed
surfaceCreated中完成对相机的初始化
surfaceChanged中绑定要显示的的画面,然后开启预览
surfaceDestroyed 完成对资源的释放
下面有一篇写的很完善的链接,可以参考