二维码扫描框,可以用于模仿人脸识别,证件号码识别,扫描,录制视频等的瞄准框。非常好用,还可以自定义颜色。
本案例分享各一小视频录制(仿人脸识别技术):
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<SurfaceView
android:id="@+id/surfaceview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<amusement.czq_901201.cn.com.amusement.FindView
android:id="@+id/find"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
/**
* Created by czq on 2016/11/21.
*/
public class FindView extends View {
/**
*父控件的宽度
*/
private int rWidth;
/**
* 父控件的高度
*/
private int rHeight;
/**
* 扫描区域的宽度
*/
private int scanWidth;
/**
* 屏幕中心点的y
*/
private int cy;
/**
* 屏幕中心点的x
*/
private int cx;
private Paint paint;
/**
* 扫描进度
*/
private float progress = 0;
/**
* 扫描框边框及扫描条的颜色
*/
private int frameColor =0xFF32FA3C ;
/**
* 进度条的颜色
*/
private int progressColor =0xFF818C84 ;
/**
* 扫描条的颜色
*/
private int scanColor =0xa132fa3c ;
/**
* 背景的颜色38121111
*/
private int backgroungColor =0x38121111 ;
/**
* 进度园的颜色FF116EDF
*/
private int pCColor =0xFF116EDF ;
private Context context;
/**
* 扫描条的高度
*/
private int scanY ;
private Handler handler;
/**
* 扫描条移动速度
*/
private int speed = 3;
/**
* 扫码条是否滚动
*/
private boolean isLoad = true;
/**
* 是否显示进度条
*/
private boolean isShowProgress = false;
public FindView(Context context) {
super(context);
inits(context);
}
public FindView(Context context, AttributeSet attrs) {
super(context, attrs);
inits(context);
}
public FindView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
inits(context);
}
private void inits(Context context) {
this.context = context;
paint = new Paint();
paint.setAntiAlias(true); //设置画笔为无锯齿
paint.setColor(frameColor); //设置画笔颜色
paint.setStrokeWidth(dip2px(5)); //线宽
paint.setStyle(Paint.Style.STROKE);
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {