访问Zxing QR扫描仪摄像头视图

时间:2015-03-30 20:35:05

标签: android android-layout android-activity android-camera zxing

我是Android开发新手,我正在开发一个Android项目,我必须整合QR扫描仪。所以我想我会整合Zxing QR扫描仪并遇到这个库https://github.com/dm77/barcodescanner,按照提供的说明,我已成功整合并扫描了QR。 现在我想自定义摄像机视图。问题是没有关于如何访问相机布局的文档。由于我是新人,我可能会遗漏一些东西。

我已阅读了很多与Zxing相关的帖子,但我找不到任何解决方案。

通过让我知道如何访问相机视图或指出我的一些文章,我们将非常感谢任何帮助。一旦我知道如何完成剩下的工作。

我很乐意提供更多信息。

提前致谢。

更新

public class QrScanActivity extends BaseActivity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_scan);

        // Programmatically initialize the scanner view
        mScannerView = new ZXingScannerView(this);
        // Set the scanner view as the content view
        setContentView(mScannerView);
    }

mScannerView是图书馆的视图。我想访问该视图。我有一个名为activity_my_scan的视图。我可以添加自定义布局并使用它,但我不知道如何绕过库使用的布局。

3 个答案:

答案 0 :(得分:0)

而不是仅仅使用gradle< p>将此lib添加为jar

compile 'me.dm7.barcodescanner:zxing:1.6.3'

您可以从github克隆项目或下载zip并将其解压缩并作为lib项目集成到您的项目中。然后对其来源和布局进行任何所需的更改。

答案 1 :(得分:0)

ZXingScannerView扩展了BarcodeScannerView。您可以通过转到ZXingScannerView的声明(在Android Studio Ctrl + B中)来访问它。

public class ZXingScannerView extends BarcodeScannerView {
private MultiFormatReader mMultiFormatReader;
public static final List<BarcodeFormat> ALL_FORMATS = new ArrayList();
private List<BarcodeFormat> mFormats;
private ZXingScannerView.ResultHandler mResultHandler;

如果您使用BarcodeScannerView的声明,您会注意到一个名为setupLayout()的方法,它格式化布局:

public void setupLayout() {
    this.mPreview = new CameraPreview(this.getContext());
    this.mViewFinderView = new ViewFinderView(this.getContext());
    RelativeLayout relativeLayout = new RelativeLayout(this.getContext());
    relativeLayout.setGravity(17);
    relativeLayout.setBackgroundColor(-16777216);
    relativeLayout.addView(this.mPreview);
    this.addView(relativeLayout);
    this.addView(this.mViewFinderView);
}

通过转到“CameraPreview”的声明,您将能够获得有关相机布局方式的更多信息,您可以扩展ZXingScannerView来编辑布局。

希望这有帮助!

干杯!

答案 2 :(得分:-1)

在你的情况下,我会尝试将布局包含在另一个布局中,也许有帮助:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width=”match_parent”
    android:layout_height=”match_parent”
    android:background="@color/app_bg"
    android:gravity="center_horizontal">

    <include layout="@layout/titlebar"/>

    <TextView android:layout_width=”match_parent”
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp" />

    ...

</LinearLayout>

当然有关于here;)的信息