在我的Android应用中使用Xzing Scanner View。
用于以下依赖项:
implementation 'me.dm7.barcodescanner:zxing:1.8.3'
当我运行该应用程序并打开扫描仪时,它会覆盖整个屏幕。 因此,问题是如何自定义Xzing扫描仪视图?
实际上,我必须添加标题,或者您可以说它是“扫描仪视图”上方的工具栏。
您可以在“扫描程序活动”中查看以下代码:
private ZXingScannerView mScannerView = null;
//Here, Seeting layout for Activity (Scanner View).
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
所以,它打开如下:
因此,要添加标题,我已经做了类似的事情:
RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
mScannerView = new ZXingScannerView(getActivity());
lprams.addRule(RelativeLayout.BELOW, R.id.rel_header);
mScannerView.setLayoutParams(lprams);
但是,结果(输出)是相同的。 我该怎么办 ?请指导。谢谢。
答案 0 :(得分:0)
我已经通过将ScannerActivity变成Fragment解决了它。 结帐:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
RelativeLayout.LayoutParams lprams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
mScannerView = new ZXingScannerView(getActivity());
lprams.addRule(RelativeLayout.BELOW, R.id.rel_header_one);
mScannerView.setLayoutParams(lprams);
if (savedInstanceState != null) {
mFlash = savedInstanceState.getBoolean(FLASH_STATE, false);
mAutoFocus = savedInstanceState.getBoolean(AUTO_FOCUS_STATE, true);
mSelectedIndices = savedInstanceState.getIntegerArrayList(SELECTED_FORMATS);
mCameraId = savedInstanceState.getInt(CAMERA_ID, -1);
} else {
mFlash = false;
mAutoFocus = true;
mSelectedIndices = null;
mCameraId = -1;
}
return mScannerView;
}
这很重要:返回mScannerView;
;)