自定义相机取景框

在项目中需要对上传身份证,就需要实现只拍摄指定区域,所以就要往相机上加一个蒙版 并且要留出身份证同比例的透明框。

预览结果:


今天就只写这个蒙版框,关于这个其实大家应该都能写出来 ,我相信也有同志们准备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, Path.Direction.CCW);  CCW 表示逆时针  
path2.addRect(x, y, width, height , Path.Direction.CCW);
path.op(path2, Path.Op.XOR);  2个path取不相交部分
canvas.drawPath(path, paint); 




评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值