在项目中需要对上传身份证,就需要实现只拍摄指定区域,所以就要往相机上加一个蒙版 并且要留出身份证同比例的透明框。
预览结果:
今天就只写这个蒙版框,关于这个其实大家应该都能写出来 ,我相信也有同志们准备cavas drawRecf() 分上下左右4块来实现。如果是这样写的话,就麻烦了。
就我自己而言 实现这个可以有2种方法:
1、cavas.clipRect() 方法 ,该方法是裁剪画布,也就是设置画布的显示区域。
canvas.clipRect(x, y, width , height, Region.Op.XOR);//设置显示范围 x,y 是取景框的起点坐标 width,height 是取景框的终点坐标 Region.Op.XOP 的参数就是取景框以外的区域canvas.drawColor(Color.parseColor("#7fFFFFFF")); 设置取景框以外的颜色 7fFFFFFF 中7f代表的是透明度 FFFFFF是颜色值
两句蒙版就完成
2、path.addRect()方法,但是这个方法 需要API19才能用 。
paint = new Paint();paint.setColor(Color.WHITE); 设置画笔白色 透明paint.setAlpha(125);
path.addRect(0, 0, width,height, W); CCW 表示逆时针 path2.addRect(x, y, width, height , W);path.op(path2, Path.Op.XOR); 2个path取不相交部分canvas.drawPath(path, paint);