当前位置: 代码迷 >> Android >> 自定义布局Android中的ZXing QRCode扫描仪
  详细解决方案

自定义布局Android中的ZXing QRCode扫描仪

热度:12   发布时间:2023-08-04 11:43:02.0

我想在Android中为ZXing扫描仪创建“自定义视图”,其中相机处于纵向模式 ,即自定义相机视图尺寸 我在同一视图中有通过片段的页眉和页脚,但无法在“自定义布局”中进行ZXing。 我做到了全屏显示。

对不起,但我可能需要一点勺子喂食。

  compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
  compile 'com.google.zxing:core:3.2.0'

我使用过的库上方,但使用以下代码将其全屏显示:

扫描活动:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

import prizeops.com.merchant.service.CallActivityService;
import prizeops.com.merchant.service.HelperUtil;
import prizeops.com.merchant.service.PrizeService;

public class ScanActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        IntentIntegrator integrator = new IntentIntegrator(this);
        integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
        integrator.setPrompt("Scan QRCode");
        integrator.setCameraId(0);
        integrator.setOrientationLocked(true);
        integrator.setBeepEnabled(true);
        integrator.setCaptureActivity(CaptureCodePortraitActivity.class);
        integrator.initiateScan();
    }
    @Override
    protected void onActivityResult(int req, int res, Intent intent) {
        IntentResult intentResult = IntentIntegrator.parseActivityResult(req, res, intent);
        if(intentResult != null){
            if(intentResult.getContents()==null){
                HelperUtil.makeToast(this, "Scanning been Cancelled.");
                CallActivityService.gotoHomeActivity(this);
            }
            else
                PrizeService.verifyPromoCode(this,intentResult.getContents(),false);
        }
        else {
            super.onActivityResult(req, res, intent);
        }
    }
}

CaptureCodePortraitActivity:

import com.journeyapps.barcodescanner.CaptureActivity;

public final class CaptureCodePortraitActivity extends CaptureActivity {}

我看到的Github帖子很少,但我不明白如何自定义它,例如:

但没有帮助

要以纵向模式打开相机,请在清单中将CaptureActivity添加为:

    android:name="com.journeyapps.barcodescanner.CaptureActivity"
    android:screenOrientation="portrait"
    tools:replace="screenOrientation" />

这将替代Zxing库中默认使用的screen direction = landscape。

  相关解决方案