SimpleScannerFragment.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package me.dm7.barcodescanner.zbar.sample;
  2. import android.os.Bundle;
  3. import android.os.Handler;
  4. import android.support.v4.app.Fragment;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.Toast;
  9. import me.dm7.barcodescanner.zbar.Result;
  10. import me.dm7.barcodescanner.zbar.ZBarScannerView;
  11. public class SimpleScannerFragment extends Fragment implements ZBarScannerView.ResultHandler {
  12. private ZBarScannerView mScannerView;
  13. @Override
  14. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  15. mScannerView = new ZBarScannerView(getActivity());
  16. return mScannerView;
  17. }
  18. @Override
  19. public void onResume() {
  20. super.onResume();
  21. mScannerView.setResultHandler(this);
  22. mScannerView.startCamera();
  23. }
  24. @Override
  25. public void handleResult(Result rawResult) {
  26. Toast.makeText(getActivity(), "Contents = " + rawResult.getContents() +
  27. ", Format = " + rawResult.getBarcodeFormat().getName(), Toast.LENGTH_SHORT).show();
  28. // Note:
  29. // * Wait 2 seconds to resume the preview.
  30. // * On older devices continuously stopping and resuming camera preview can result in freezing the app.
  31. // * I don't know why this is the case but I don't have the time to figure out.
  32. Handler handler = new Handler();
  33. handler.postDelayed(new Runnable() {
  34. @Override
  35. public void run() {
  36. mScannerView.resumeCameraPreview(SimpleScannerFragment.this);
  37. }
  38. }, 2000);
  39. }
  40. @Override
  41. public void onPause() {
  42. super.onPause();
  43. mScannerView.stopCamera();
  44. }
  45. }