如何在ZXing Scanner View中添加按钮?

时间:2018-01-16 15:44:43

标签: java android qr-code

我已经找到了How to add buttons in Zxing Scanner Camera View 但它不起作用...... 我在这样的弹出窗口中使用相机

DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    int width =dm.widthPixels;
    int height =dm.heightPixels;
    getWindow().setLayout((int)(width*.9), (int)(height*.7));

    WindowManager.LayoutParams params = getWindow().getAttributes();
    params.gravity = Gravity.TOP;
    params.x =0;
    params.y = -20;
    getWindow().setAttributes(params);

    mScannerView = (ZXingScannerView) findViewById(R.id.zxscan);
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();

这是xml文件

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CFD8DC"
android:orientation="vertical"
tools:context="com.example.adisi.turzilnic.S1">

 <me.dm7.barcodescanner.zxing.ZXingScannerView
    android:id="@+id/zxscan"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageButton
        android:id="@+id/FlashOFF"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/flashoff"
        android:layout_marginLeft="150dp"
        android:layout_marginStart="150dp"
        android:layout_marginTop="150dp"/>

    <ImageButton
        android:id="@+id/FlashON"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/flashon"
        android:layout_gravity="center"
        android:layout_marginTop="50dp"/>

 </me.dm7.barcodescanner.zxing.ZXingScannerView>
  </RelativeLayout>

这里有什么问题?我不明白..我的按钮没有显示在相机上..应该是从弹出窗口?我在中间设置了带有margintop和marginleft的按钮,因为我想看看这个位置是不是问题..但同样的问题..

1 个答案:

答案 0 :(得分:1)

按钮的大小为 wrap_content ,而不是在按钮上设置图像源,而是在背景上设置图像。视图相对大小不会跟踪视图的背景,因此您很可能会将宽度/高度设置为0的视图。

尝试使用“src”设置图像。