通过surfaceview使用zxing条形码阅读器

我正在创建一个条码扫描器应用程序,我想使用Zxing读取条形码,我的应用程序有一个surfaceview并显示相机,但现在我想从我的SurfaceView相机扫描条形码,我使用它的原因,是我在我的布局中的表面视图下有两个Edittexts来显示条形码的内容。

我应该如何创建一个类似的应用程序,主要的问题是如何将zxing设置为表面。
如果有任何我会欣赏的方式。

布局截图:

在此处输入图像描述

使用以下代码自定义您的zxing布局。

我带了一个RelativeLayout对于zxing Scanner的RelativeLayout

或者, 使用此引用:

我的设计看起来像下面的图像,如果需要你可以采取FrameLayout

在此处输入图像描述

Xml代码:

               

活动代码:(Java)

  public class TakeSingleScanActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { private ZXingScannerView mScannerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_take_single_scan); //Scanner mScannerView = new ZXingScannerView(this); RelativeLayout rl = (RelativeLayout) findViewById(R.id.relative_scan_take_single); rl.addView(mScannerView); mScannerView.setResultHandler(this); mScannerView.startCamera(); mScannerView.setSoundEffectsEnabled(true); mScannerView.setAutoFocus(true); }