android如何在横向和纵向使用ZXing条码扫描器

How to use ZXing bar code scanner in both landscape and portrait in android

我正在项目中使用我。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"

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