如何在安卓中的横向和纵向中使用ZXing条形码扫描仪



我在我的项目中使用me.dm7.barcodescanner.zxing.ZXingScannerView。现在我可以扫描条形码了。但我无法在横向模式下使用它。我正在尝试使用旋转。

 scannerView = new ZXingScannerView(this);
        scannerView.setAutoFocus(true);
//        scannerView.setRotation(90);
//        scannerView.setRotationX(90);
        contentFrame.addView(scannerView);

但这行不通。请帮助我在纵向和横向中使用这款扫描仪。在此,我附上了我正在使用的代码。

<activity
            android:name="com.trackx.mobile.barcodescanner.BarcodeScanner"
            android:theme="@style/TM_MaterialTheme"
            android:configChanges="orientation|screenSize"
            android:label="SCAN BARCODE"
            android:launchMode="singleTop"
            />

我的扫描仪代码是:

 public class BarcodeScanner extends AppCompatActivity implements ZXingScannerView.ResultHandler, View.OnClickListener{
    private ZXingScannerView scannerView;
    private ImageView mTorchButton = null;
    private static boolean torchStatus = false;

    @Override
    public void onCreate(Bundle state) {
        super.onCreate(state);
        setContentView(R.layout.scanning_layout);
        ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
        scannerView = new ZXingScannerView(this);
        scannerView.setAutoFocus(true);
        contentFrame.addView(scannerView);
        mTorchButton = (ImageView)findViewById(R.id.torch_button);
        mTorchButton.setOnClickListener(this);
        boolean hasFlash =this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
        if(!hasFlash){
            mTorchButton.setVisibility(View.GONE);
        }
    }
    @Override
    public void onResume() {
        super.onResume();
        scannerView.setResultHandler(this);
        scannerView.startCamera();
    }
    @Override
    public void onPause() {
        super.onPause();
        scannerView.stopCamera();
    }
    @Override
    public void handleResult(Result rawResult) {
        //Call back data to main activity
        Intent intent = new Intent();
        intent.putExtra(Constants.FORMAT, rawResult.getBarcodeFormat().toString());
        intent.putExtra(Constants.CONTENT, rawResult.getText());
        setResult(Activity.RESULT_OK, intent);
        finish();
    }

我解决了这个问题。在清单中添加了以下内容

android:screenOrientation="sensor"

现在我可以在两个方向上使用。

最新更新