package com.king.zxing;
import android.view.View;
import com.google.zxing.Result;
import com.king.camera.scan.BaseCameraScanFragment;
import com.king.camera.scan.analyze.Analyzer;
import com.king.view.viewfinderview.ViewfinderView;
import com.king.zxing.analyze.MultiFormatAnalyzer;
import androidx.annotation.Nullable;
/**
* 基于zxing实现的扫码识别 - 相机扫描基类
*
* 通过继承 {@link BarcodeCameraScanActivity}或{@link BarcodeCameraScanFragment}可快速实现扫码识别
*
* @author Jenly
*
* Follow me
*/
public abstract class BarcodeCameraScanFragment extends BaseCameraScanFragment {
protected ViewfinderView viewfinderView;
@Override
public void initUI() {
int viewfinderViewId = getViewfinderViewId();
if (viewfinderViewId != View.NO_ID && viewfinderViewId != 0) {
viewfinderView = getRootView().findViewById(viewfinderViewId);
}
super.initUI();
}
@Nullable
@Override
public Analyzer createAnalyzer() {
return new MultiFormatAnalyzer();
}
/**
* 布局ID;通过覆写此方法可以自定义布局
*
* @return 布局ID
*/
@Override
public int getLayoutId() {
return R.layout.zxl_camera_scan;
}
/**
* {@link #viewfinderView} 的 ID
*
* @return 默认返回{@code R.id.viewfinderView}, 如果不需要扫码框可以返回{@link View#NO_ID}
*/
public int getViewfinderViewId() {
return R.id.viewfinderView;
}
}