我在我的项目中使用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"
现在我可以在两个方向上使用。