绘制取景框的边角线:
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 添加矩形框角
int height = (int) (screenWidth * 0.8);//拍照的阴影框的高度为屏幕宽度的80% 0.8
int width = (int) (height * 1.6);//身份证宽高比例为1.6
int x_center=screenWidth/2;
int y_center=screenHeitht/2;
int x_start = x_center-(height/2);
int y_start = y_center - (width / 2);
int x_end = x_center+(height/2);
int y_end = y_center + (width/2);
// 参考博客:https://blog.csdn.net/qq_37918409/article/details/81560446
Paint paint = new Paint(); //设置一个笔刷大小是3的黄色的画笔
paint.setColor(Color.RED);//设置画笔颜色为红色
paint.setStrokeJoin(Paint.Join.ROUND);//设置拐角为圆角
paint.setStrokeCap(Paint.Cap.ROUND);//半圆形端点
paint.setStrokeWidth(8);
int length = 50;
canvas.drawLine(x_start, y_start, x_start, y_start+length, paint);
canvas.drawLine(x_start, y_start, x_start+length, y_start, paint);
canvas.drawLine(x_end, y_start, x_end-length, y_start, paint);
canvas.drawLine(x_end, y_start, x_end, y_start+length, paint);
canvas.drawLine(x_start, y_end, x_start, y_end-length, paint);
canvas.drawLine(x_start, y_end, x_start+length, y_end, paint);
canvas.drawLine(x_end, y_end, x_end, y_end-length, paint);
canvas.drawLine(x_end, y_end, x_end-length, y_end, paint);
canvas.clipRect(0, 0, screenWidth, screenHeitht);
canvas.clipRect(getShadowRegionRect(), Region.Op.DIFFERENCE);
canvas.drawColor(0x60000000);
canvas.save();
canvas.restore();
}