Tôi phát triển máy quét liên tục mã vạch ZXing sau this page trên Android Studio.Máy quét mã vạch ZXing trong bố cục tùy chỉnh trong đoạn
My App build.gradle
đã bao gồm:
repositories {
mavenCentral()
maven {
url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile files('src/main/jniLibs/scanditsdk-android-4.7.5.jar')
compile files('src/main/jniLibs/httpclient-4.0.jar')
compile 'com.journeyapps:zxing-android-embedded:[email protected]'
compile 'com.google.zxing:core:3.2.0'
}
Và Fragment.xml
tôi 's bố trí:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00CC00"
android:orientation="vertical"
android:weightSum="100">
<com.journeyapps.barcodescanner.CompoundBarcodeView
android:id="@+id/barcode_scanner"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="40"
>
</com.journeyapps.barcodescanner.CompoundBarcodeView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="100"
style="?android:attr/buttonBarStyle"
>
<Button
android:id="@+id/btnStartScan"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="25"
android:text="Start"
android:background="@drawable/buttonstyle"
style="@style/button_style"/>
<Button
android:id="@+id/btnStopScan"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="25"
android:text="Stop"
android:background="@drawable/buttonstyle"
style="@style/button_style"/>
<Button
android:id="@+id/btnPauseScan"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="25"
android:text="Pause"
android:background="@drawable/buttonstyle"
style="@style/button_style"/>
<Button
android:id="@+id/btnResumeScan"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="25"
android:text="Resume"
android:background="@drawable/buttonstyle"
style="@style/button_style"/>
</LinearLayout>
</LinearLayout>
Sau đó, mã nhìn Fragment của tôi như sau:
public class CMCSMOFragment extends Fragment implements View.OnClickListener {
private CompoundBarcodeView barcodeView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
View v;
v = inflater.inflate(R.layout.cmcsmo_layout, container, false);
barcodeView = (CompoundBarcodeView) v.findViewById(R.id.barcode_scanner);
barcodeView.decodeContinuous(callback);
return v;
}
private BarcodeCallback callback = new BarcodeCallback() {
@Override
public void barcodeResult(BarcodeResult result) {
if (result.getText() != null) {
barcodeView.setStatusText(result.getText());
}
//Do something with code result
}
@Override
public void possibleResultPoints(List<ResultPoint> resultPoints) {
}
};
}
Và khi tôi xây dựng ứng dụng của tôi, CompoundBarcodeView
chỉ hiển thị chế độ xem màu đen với văn bản ZXing:
Đặt mã vạch bên trong hình chữ nhật kính ngắm để quét.
Edit:
Thực hiện theo Lennon gợi ý, tôi đã sử dụng zxing-minimum
nhưng nó không cho phép làm việc trên chế độ Portrait :(
Làm thế nào tôi nên làm gì để giải quyết vấn đề này. Cảm ơn mọi sự giúp đỡ!
tại sao bạn thực hiện view.onClicklistener không có chức năng onclick? –
Lớp học của tôi quá dài nên tôi chỉ đăng mã cho vấn đề của mình. –