2016-12-30 2 views
2

Я хочу, чтобы создать приложение сканирования штрих-кодов с помощью сканера штрих-кода ZXingКак ZXing Barcode Scanner не полный экран только половина экрана

Как и BlackBerry Messenger

enter image description here

Это мой код "MainActivity.java "

package com.example.ridwan.myapplication; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.widget.TextView; 

import info.vividcode.android.zxing.CaptureActivity; 
import info.vividcode.android.zxing.CaptureActivityIntents; 

public class MainActivity extends AppCompatActivity { 

    private TextView tvScanResult; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Intent captureIntent = new Intent(MainActivity.this, CaptureActivity.class); 
     CaptureActivityIntents.setPromptMessage(captureIntent, "Barcode scanning..."); 
     startActivityForResult(captureIntent, 0); 

     tvScanResult = (TextView) findViewById(R.id.tv_scanresult); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 0) { 
      if (resultCode == Activity.RESULT_OK && data != null) { 
       String value = data.getStringExtra("SCAN_RESULT"); 
       tvScanResult.setText(value); 
      } else if (resultCode == Activity.RESULT_CANCELED) { 
       tvScanResult.setText("Scanning Gagal, mohon coba lagi."); 
      } 
     } else { 

     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 


} 

Тогда это мой" activity_main.xml "

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.ridwan.myapplication.MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <TextView 
     android:layout_marginTop="50dp" 
     android:id="@+id/tv_scanresult_title" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Result Scan : " /> 

    <TextView 
     android:layout_below="@id/tv_scanresult_title" 
     android:id="@+id/tv_scanresult" 
     android:layout_centerHorizontal="true" 
     android:layout_width="wrap_content" 
     android:textColor="#ff1493" 
     android:layout_height="wrap_content" 
     android:text="_" /> 

</RelativeLayout> 

Можете ли вы дать мне решение? Я хочу, чтобы штрих-код в фрагменте.

ответ

0

Пожалуйста Добавьте этот код в MainActivity

Добавить этот Libray в Gradle в зависимости

compile 'com.journeyapps:zxing-android-embedded:[email protected]' 
compile 'me.dm7.barcodescanner:zxing:1.9' 

Добавить банку zbar.jar

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { 

ZXingScannerView mScannerView; 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     QCscanner = (Button) findViewById(R.id.QCscanner); 



mScannerView = new ZXingScannerView(this); 
    QCscanner.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      try { 
       /*Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
       intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
       startActivityForResult(intent, 0);*/ 
       mScannerView = new ZXingScannerView(MainActivity.this); // Programmatically initialize the scanner view<br /> 
       setContentView(mScannerView); 
       mScannerView.setResultHandler(MainActivity.this); // Register ourselves as a handler for scan results.<br /> 
       mScannerView.startCamera(); 
      } catch (Exception ex) { 
       ex.printStackTrace(); 
      } 
     } 
    }); 

}

@Override 
public void handleResult(Result result) { 
    Log.e("", result.getText()); // Prints scan results<br /> 
    Log.e("", result.getBarcodeFormat().toString()); 

    Toast.makeText(MainActivity.this, "" + result.getText() + "\n" + result.getBarcodeFormat().toString(), Toast.LENGTH_SHORT).show(); 

} 

}

+0

Это мой код, штрих-код уже запущен, но я хочу не полный экран сканирования штрих-кода, я хочу, чтобы сканировать штрих-код только наполовину экран –

+0

использовать FrameLayout decalre высота и ширина и в макете вызывать свой штрих-код xml –

+0

barcode.xml? im только 2 файла (1 java и 1 xml) –

0

Библиотека ZXING позволяет запускать намерение (действие) для сканирования штрих-кодов. Если вы хотите внести изменения в это, вам нужно внести изменения в CaptureActivity of ZXING lib.

Кроме того, теперь, когда Google включил функцию сканирования в свои сервисы, вы можете использовать Vision api для сканирования в фрагменте без интеграции сторонней библиотеки. https://github.com/googlesamples/android-vision/tree/master/visionSamples

1

Я достиг такого же эффекта/UI, что и вы, используя ZXing Android Embedded. Очень просто реализовать - и он также включает в себя функцию факела.

Смежные вопросы