How to ZXING Barcode Scanner not full screen only half screen

后端 未结 5 795
礼貌的吻别
礼貌的吻别 2020-12-02 02:14

I want create application Scan Barcode using ZXING Barcode Scanner

Like Blackberry Messenger

This is my code \"MainActivity.java\"

5条回答
  •  -上瘾入骨i
    2020-12-02 03:00

    Step 1:

    Add This Libray in Gradle in Dependancy

    implementation 'com.google.zxing:core:3.2.1'
    implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
    

    Step 2:

    BarcodeActivity.java

        public class BarcodeActivity extends AppCompatActivity {
    
    
           private EditText editTextProductId;
           private Button buttonGenerate, buttonScan;
           private ImageView imageViewResult;
    
           @Override
           protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_barcode);
              initView();
           }
    
           private void initView() {
               editTextProductId = findViewById(R.id.editTextProductId);
               imageViewResult = findViewById(R.id.imageViewResult);
               buttonGenerate = findViewById(R.id.buttonGenerate);
    
               buttonGenerate.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View view) {
                       buttonGenerate_onClick(view);
                   }
               });
               buttonScan = findViewById(R.id.buttonScan);
               buttonScan.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View view) {
                       buttonScan_onClick(view);
                   }
               });
           }
    
           private void buttonGenerate_onClick(View view) {
               try {
                   String productId = editTextProductId.getText().toString();
                   Hashtable hintMap = new Hashtable();
                   hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
                   Writer codeWriter;
                   codeWriter = new Code128Writer();
                   BitMatrix byteMatrix = codeWriter.encode(productId, BarcodeFormat.CODE_128,400, 200, hintMap);
                   int width = byteMatrix.getWidth();
                   int height = byteMatrix.getHeight();
                   Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
                   for (int i = 0; i < width; i++) {
                       for (int j = 0; j < height; j++) {
                           bitmap.setPixel(i, j, byteMatrix.get(i, j) ? Color.BLACK : Color.WHITE);
                       }
                   }
                   imageViewResult.setImageBitmap(bitmap);
               } catch (Exception e) {
                   Toast.makeText(getApplicationContext(), e.getMessage(), 
                   Toast.LENGTH_LONG).show();
               }
           }
    
           private void buttonScan_onClick(View view) {
               IntentIntegrator intentIntegrator = new IntentIntegrator(this);
       intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
               intentIntegrator.setCameraId(0);
               intentIntegrator.initiateScan();
           }
    
           @Override
           protected void onActivityResult(int requestCode, int resultCode, Intent data) {
               IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
               if (intentResult != null) {
                   String productId = intentResult.getContents();
                   Toast.makeText(getApplicationContext(), productId, Toast.LENGTH_LONG).show();
               }
           }
    
        }
    

    Step 3:

    activity_barcode.xml

    
    
    
    
    
    
    
        

提交回复
热议问题