Я попытался внедрить библиотеку сканера штрих-кодов Zxing, впервые отсканировал, она сканирует идеально, и штрих-код должен быть захвачен.При попытке сканирования другого штрих-кода ранее захваченное изображение штрих-кода остается прежним.
А также установите кнопку закрытия в самом сканере или просто поделитесь лучшей библиотекой сканера
![Click here to see screen capture](https://i.stack.imgur.com/aotUI.jpg)
Код указан ниже:
package com.erplogic.handledscanner;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
import static android.Manifest.permission.CAMERA;
public class ScannedDetails extends AppCompatActivity implements
AsynchronousResponse , ZXingScannerView.ResultHandler{
String lineItemID;
private ZXingScannerView scannerView;
private LinearLayout scanner;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scanned_details);
scanner= findViewById(R.id.scan_recycle);
// Scanner button
ImageButton scannerButton = findViewById(R.id.scanner_button);
scannerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
recyclerView.setVisibility(View.GONE);
scannerView = new ZXingScannerView(ScannedDetails.this);
scanner.addView(scannerView);
}
}
});
}
@Override
public void handleResult(Result result) {
Toast.makeText(ScannedDetails.this, result.getText(),
Toast.LENGTH_LONG).show();
}
@Override
public void onPointerCaptureChanged(boolean hasCapture) {
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onResume() {
super.onResume();
if (scannerView == null) {
scannerView = new ZXingScannerView(ScannedDetails.this);
scanner.addView(scannerView);
}
scannerView.setResultHandler(this);
scannerView.startCamera();
}
}
}