├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── org │ │ └── dync │ │ └── zxingscan │ │ └── ExampleInstrumentedTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── org │ │ │ └── dync │ │ │ └── zxingscan │ │ │ ├── Camera1Helper.java │ │ │ ├── CameraHelper.java │ │ │ ├── CommonScanActivity.java │ │ │ ├── CreateCodeActivity.java │ │ │ ├── CustomDialog.java │ │ │ ├── LivePreviewActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── Size.java │ │ │ └── SpanUtils.java │ └── res │ │ ├── color │ │ └── app_dialog_button_color_selector.xml │ │ ├── drawable │ │ ├── app_dialog_bg.xml │ │ ├── icon.jpg │ │ ├── rescan_shape_button.xml │ │ ├── shouquan_qrcode_g_gallery.xml │ │ ├── shouquan_qrcode_ic_back.xml │ │ └── shouquan_qrcode_s_flashgun.xml │ │ ├── layout │ │ ├── activity_common_scan.xml │ │ ├── activity_create_code.xml │ │ ├── activity_live_preview.xml │ │ ├── activity_main.xml │ │ ├── barcode_result_dialog.xml │ │ └── spinner_style.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── btn_switch_camera.png │ │ ├── ic_launcher.png │ │ ├── ic_launcher_round.png │ │ ├── ico_back_white.png │ │ ├── scan2code_icon_back_nor.png │ │ ├── scan2code_icon_back_sel.png │ │ ├── scan2code_icon_light_nor.png │ │ ├── scan2code_icon_light_sel.png │ │ ├── scan2code_icon_xiangce.png │ │ └── scan2code_icon_xiangce_sel.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── org │ └── dync │ └── zxingscan │ └── ExampleUnitTest.java ├── barcode ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── kathline │ │ └── barcode │ │ ├── BitmapUtils.java │ │ ├── CameraImageGraphic.java │ │ ├── CameraSource.java │ │ ├── CameraSourcePreview.java │ │ ├── FrameMetadata.java │ │ ├── GestureDetectorUtil.java │ │ ├── GraphicOverlay.java │ │ ├── InferenceInfoGraphic.java │ │ ├── MLKit.java │ │ ├── PermissionUtil.java │ │ ├── PreferenceUtils.java │ │ ├── ScopedExecutor.java │ │ ├── UriUtils.java │ │ ├── ViewfinderView.java │ │ ├── VisionImageProcessor.java │ │ ├── VisionProcessorBase.java │ │ ├── barcodescanner │ │ ├── BarcodeGraphic.java │ │ ├── BarcodeScannerProcessor.java │ │ └── WxGraphic.java │ │ └── hardware │ │ ├── BeepManager.java │ │ └── FrontLightMode.java │ └── res │ ├── drawable │ ├── ic_switch_camera_white_48dp.xml │ └── toggle_style.xml │ ├── layout │ └── settings_style.xml │ ├── mipmap-xhdpi │ ├── ic_settings_white_24dp.png │ ├── ic_switch_camera_white_48dp_inset.png │ └── ico_wechat.png │ ├── raw │ └── beep.ogg │ └── values │ ├── attrs.xml │ ├── colors.xml │ └── strings.xml ├── bintray.gradle ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ └── gradle-wrapper.properties ├── mavencentral.gradle ├── screenshot ├── GIF1.gif └── GIF2.gif ├── settings.gradle └── zxinglibrary ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src └── main ├── AndroidManifest.xml ├── java ├── com │ └── google │ │ └── zxing │ │ ├── BarcodeFormat.java │ │ ├── Binarizer.java │ │ ├── BinaryBitmap.java │ │ ├── ChecksumException.java │ │ ├── DecodeHintType.java │ │ ├── Dimension.java │ │ ├── EncodeHintType.java │ │ ├── FormatException.java │ │ ├── InvertedLuminanceSource.java │ │ ├── LuminanceSource.java │ │ ├── MultiFormatReader.java │ │ ├── MultiFormatWriter.java │ │ ├── NotFoundException.java │ │ ├── PlanarYUVLuminanceSource.java │ │ ├── RGBLuminanceSource.java │ │ ├── Reader.java │ │ ├── ReaderException.java │ │ ├── Result.java │ │ ├── ResultMetadataType.java │ │ ├── ResultPoint.java │ │ ├── ResultPointCallback.java │ │ ├── Writer.java │ │ ├── WriterException.java │ │ ├── aztec │ │ ├── AztecDetectorResult.java │ │ ├── AztecReader.java │ │ ├── AztecWriter.java │ │ ├── decoder │ │ │ └── Decoder.java │ │ ├── detector │ │ │ └── Detector.java │ │ └── encoder │ │ │ ├── AztecCode.java │ │ │ ├── BinaryShiftToken.java │ │ │ ├── Encoder.java │ │ │ ├── HighLevelEncoder.java │ │ │ ├── SimpleToken.java │ │ │ ├── State.java │ │ │ └── Token.java │ │ ├── common │ │ ├── BitArray.java │ │ ├── BitMatrix.java │ │ ├── BitSource.java │ │ ├── CharacterSetECI.java │ │ ├── DecoderResult.java │ │ ├── DefaultGridSampler.java │ │ ├── DetectorResult.java │ │ ├── GlobalHistogramBinarizer.java │ │ ├── GridSampler.java │ │ ├── HybridBinarizer.java │ │ ├── PerspectiveTransform.java │ │ ├── StringUtils.java │ │ ├── detector │ │ │ ├── MathUtils.java │ │ │ ├── MonochromeRectangleDetector.java │ │ │ └── WhiteRectangleDetector.java │ │ └── reedsolomon │ │ │ ├── GenericGF.java │ │ │ ├── GenericGFPoly.java │ │ │ ├── ReedSolomonDecoder.java │ │ │ ├── ReedSolomonEncoder.java │ │ │ └── ReedSolomonException.java │ │ ├── datamatrix │ │ ├── DataMatrixReader.java │ │ ├── DataMatrixWriter.java │ │ ├── decoder │ │ │ ├── BitMatrixParser.java │ │ │ ├── DataBlock.java │ │ │ ├── DecodedBitStreamParser.java │ │ │ ├── Decoder.java │ │ │ └── Version.java │ │ ├── detector │ │ │ └── Detector.java │ │ └── encoder │ │ │ ├── ASCIIEncoder.java │ │ │ ├── Base256Encoder.java │ │ │ ├── C40Encoder.java │ │ │ ├── DataMatrixSymbolInfo144.java │ │ │ ├── DefaultPlacement.java │ │ │ ├── EdifactEncoder.java │ │ │ ├── Encoder.java │ │ │ ├── EncoderContext.java │ │ │ ├── ErrorCorrection.java │ │ │ ├── HighLevelEncoder.java │ │ │ ├── SymbolInfo.java │ │ │ ├── SymbolShapeHint.java │ │ │ ├── TextEncoder.java │ │ │ └── X12Encoder.java │ │ ├── maxicode │ │ ├── MaxiCodeReader.java │ │ └── decoder │ │ │ ├── BitMatrixParser.java │ │ │ ├── DecodedBitStreamParser.java │ │ │ └── Decoder.java │ │ ├── multi │ │ ├── ByQuadrantReader.java │ │ ├── GenericMultipleBarcodeReader.java │ │ ├── MultipleBarcodeReader.java │ │ └── qrcode │ │ │ ├── QRCodeMultiReader.java │ │ │ └── detector │ │ │ ├── MultiDetector.java │ │ │ └── MultiFinderPatternFinder.java │ │ ├── oned │ │ ├── CodaBarReader.java │ │ ├── CodaBarWriter.java │ │ ├── Code128Reader.java │ │ ├── Code128Writer.java │ │ ├── Code39Reader.java │ │ ├── Code39Writer.java │ │ ├── Code93Reader.java │ │ ├── Code93Writer.java │ │ ├── EAN13Reader.java │ │ ├── EAN13Writer.java │ │ ├── EAN8Reader.java │ │ ├── EAN8Writer.java │ │ ├── EANManufacturerOrgSupport.java │ │ ├── ITFReader.java │ │ ├── ITFWriter.java │ │ ├── MultiFormatOneDReader.java │ │ ├── MultiFormatUPCEANReader.java │ │ ├── OneDReader.java │ │ ├── OneDimensionalCodeWriter.java │ │ ├── UPCAReader.java │ │ ├── UPCAWriter.java │ │ ├── UPCEANExtension2Support.java │ │ ├── UPCEANExtension5Support.java │ │ ├── UPCEANExtensionSupport.java │ │ ├── UPCEANReader.java │ │ ├── UPCEANWriter.java │ │ ├── UPCEReader.java │ │ ├── UPCEWriter.java │ │ └── rss │ │ │ ├── AbstractRSSReader.java │ │ │ ├── DataCharacter.java │ │ │ ├── FinderPattern.java │ │ │ ├── Pair.java │ │ │ ├── RSS14Reader.java │ │ │ ├── RSSUtils.java │ │ │ └── expanded │ │ │ ├── BitArrayBuilder.java │ │ │ ├── ExpandedPair.java │ │ │ ├── ExpandedRow.java │ │ │ ├── RSSExpandedReader.java │ │ │ └── decoders │ │ │ ├── AI013103decoder.java │ │ │ ├── AI01320xDecoder.java │ │ │ ├── AI01392xDecoder.java │ │ │ ├── AI01393xDecoder.java │ │ │ ├── AI013x0x1xDecoder.java │ │ │ ├── AI013x0xDecoder.java │ │ │ ├── AI01AndOtherAIs.java │ │ │ ├── AI01decoder.java │ │ │ ├── AI01weightDecoder.java │ │ │ ├── AbstractExpandedDecoder.java │ │ │ ├── AnyAIDecoder.java │ │ │ ├── BlockParsedResult.java │ │ │ ├── CurrentParsingState.java │ │ │ ├── DecodedChar.java │ │ │ ├── DecodedInformation.java │ │ │ ├── DecodedNumeric.java │ │ │ ├── DecodedObject.java │ │ │ ├── FieldParser.java │ │ │ └── GeneralAppIdDecoder.java │ │ ├── pdf417 │ │ ├── PDF417Common.java │ │ ├── PDF417Reader.java │ │ ├── PDF417ResultMetadata.java │ │ ├── PDF417Writer.java │ │ ├── decoder │ │ │ ├── BarcodeMetadata.java │ │ │ ├── BarcodeValue.java │ │ │ ├── BoundingBox.java │ │ │ ├── Codeword.java │ │ │ ├── DecodedBitStreamParser.java │ │ │ ├── DetectionResult.java │ │ │ ├── DetectionResultColumn.java │ │ │ ├── DetectionResultRowIndicatorColumn.java │ │ │ ├── PDF417CodewordDecoder.java │ │ │ ├── PDF417ScanningDecoder.java │ │ │ └── ec │ │ │ │ ├── ErrorCorrection.java │ │ │ │ ├── ModulusGF.java │ │ │ │ └── ModulusPoly.java │ │ ├── detector │ │ │ ├── Detector.java │ │ │ └── PDF417DetectorResult.java │ │ └── encoder │ │ │ ├── BarcodeMatrix.java │ │ │ ├── BarcodeRow.java │ │ │ ├── Compaction.java │ │ │ ├── Dimensions.java │ │ │ ├── PDF417.java │ │ │ ├── PDF417ErrorCorrection.java │ │ │ └── PDF417HighLevelEncoder.java │ │ ├── qrcode │ │ ├── QRCodeReader.java │ │ ├── QRCodeWriter.java │ │ ├── decoder │ │ │ ├── BitMatrixParser.java │ │ │ ├── DataBlock.java │ │ │ ├── DataMask.java │ │ │ ├── DecodedBitStreamParser.java │ │ │ ├── Decoder.java │ │ │ ├── ErrorCorrectionLevel.java │ │ │ ├── FormatInformation.java │ │ │ ├── Mode.java │ │ │ ├── QRCodeDecoderMetaData.java │ │ │ └── Version.java │ │ ├── detector │ │ │ ├── AlignmentPattern.java │ │ │ ├── AlignmentPatternFinder.java │ │ │ ├── Detector.java │ │ │ ├── FinderPattern.java │ │ │ ├── FinderPatternFinder.java │ │ │ └── FinderPatternInfo.java │ │ └── encoder │ │ │ ├── BlockPair.java │ │ │ ├── ByteMatrix.java │ │ │ ├── Encoder.java │ │ │ ├── MaskUtil.java │ │ │ ├── MatrixUtil.java │ │ │ └── QRCode.java │ │ └── result │ │ ├── AbstractDoCoMoResultParser.java │ │ ├── AddressBookAUResultParser.java │ │ ├── AddressBookDoCoMoResultParser.java │ │ ├── AddressBookParsedResult.java │ │ ├── BizcardResultParser.java │ │ ├── BookmarkDoCoMoResultParser.java │ │ ├── CalendarParsedResult.java │ │ ├── EmailAddressParsedResult.java │ │ ├── EmailAddressResultParser.java │ │ ├── EmailDoCoMoResultParser.java │ │ ├── ExpandedProductParsedResult.java │ │ ├── ExpandedProductResultParser.java │ │ ├── GeoParsedResult.java │ │ ├── GeoResultParser.java │ │ ├── ISBNParsedResult.java │ │ ├── ISBNResultParser.java │ │ ├── ParsedResult.java │ │ ├── ParsedResultType.java │ │ ├── ProductParsedResult.java │ │ ├── ProductResultParser.java │ │ ├── ResultParser.java │ │ ├── SMSMMSResultParser.java │ │ ├── SMSParsedResult.java │ │ ├── SMSTOMMSTOResultParser.java │ │ ├── SMTPResultParser.java │ │ ├── TelParsedResult.java │ │ ├── TelResultParser.java │ │ ├── TextParsedResult.java │ │ ├── URIParsedResult.java │ │ ├── URIResultParser.java │ │ ├── URLTOResultParser.java │ │ ├── VCardResultParser.java │ │ ├── VEventResultParser.java │ │ ├── VINParsedResult.java │ │ ├── VINResultParser.java │ │ ├── WifiParsedResult.java │ │ └── WifiResultParser.java └── org │ └── dync │ └── zxinglibrary │ ├── ScanManager.java │ ├── callback │ └── ScanListener.java │ ├── camera │ ├── AutoFocusManager.java │ ├── CameraConfigurationManager.java │ ├── CameraConfigurationUtils.java │ ├── CameraManager.java │ ├── FrontLightMode.java │ ├── PreviewCallback.java │ └── open │ │ ├── CameraFacing.java │ │ ├── OpenCamera.java │ │ └── OpenCameraInterface.java │ ├── decod │ ├── CaptureActivityHandler.java │ ├── DecodeFormatManager.java │ ├── DecodeHandler.java │ ├── DecodeThread.java │ ├── PhotoScanHandler.java │ ├── RGBLuminanceSource.java │ └── Utils.java │ ├── encode │ └── EncodeHelper.java │ ├── hardware │ ├── AmbientLightManager.java │ └── BeepManager.java │ ├── utils │ ├── BitmapUtils.java │ ├── GestureDetectorUtil.java │ ├── InactivityTimer.java │ ├── Intents.java │ ├── PermissionUtil.java │ ├── PreferencesActivity.java │ ├── PreferencesFragment.java │ └── QRCode.java │ └── view │ └── ViewfinderView.java └── res ├── raw └── beep.ogg ├── values ├── arrays.xml ├── colors.xml ├── dimens.xml ├── ids.xml └── strings.xml └── xml └── preferences.xml /README.md: -------------------------------------------------------------------------------- 1 | # ZxingScan 2 | QRCode.java文件中提供了6种生成二维码的样式,可直接按照如下方式使用。 3 | ``` 4 | qrcode1.setImageBitmap(QRCode.createQRCode("http://www.tmtpost.com/2536837.html")); 5 | qrcode2.setImageBitmap(QRCode.createQRCodeWithLogo2("http://www.jianshu.com/users/4a4eb4feee62/latest_articles", 500, QRCode.drawableToBitmap(getResources().getDrawable(R.drawable.head)))); 6 | qrcode3.setImageBitmap(QRCode.createQRCodeWithLogo3("http://www.jianshu.com/users/4a4eb4feee62/latest_articles", 500, QRCode.drawableToBitmap(getResources().getDrawable(R.drawable.head)))); 7 | qrcode4.setImageBitmap(QRCode.createQRCodeWithLogo4("http://www.jianshu.com/users/4a4eb4feee62/latest_articles", 500, QRCode.drawableToBitmap(getResources().getDrawable(R.drawable.head)))); 8 | qrcode5.setImageBitmap(QRCode.createQRCodeWithLogo5("http://www.jianshu.com/users/4a4eb4feee62/latest_articles", 500, QRCode.drawableToBitmap(getResources().getDrawable(R.drawable.head)))); 9 | qrcode6.setImageBitmap(QRCode.createQRCodeWithLogo6("http://www.jianshu.com/users/4a4eb4feee62/latest_articles", 500, QRCode.drawableToBitmap(getResources().getDrawable(R.drawable.head)))); 10 | ``` 11 | ## 效果图 12 | ![image](https://raw.githubusercontent.com/DyncKathline/ZxingScan/master/screenshot/GIF1.gif) 13 | ![image](https://raw.githubusercontent.com/DyncKathline/ZxingScan/master/screenshot/GIF2.gif) 14 | ## barcode 15 | 1. 扫描速度比zxinglibrary大大提高速倍,可以和微信媲美,而且可以以任意比例进行预览。 16 | 2. 支持识别多个二维码和条形码。 17 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 30 5 | // buildToolsVersion "30.0.3" 6 | ndkVersion "21.0.6113669" 7 | 8 | defaultConfig { 9 | applicationId "org.dync.zxingscan" 10 | minSdkVersion 19 11 | targetSdkVersion 30 12 | versionCode 1 13 | versionName "1.0" 14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 15 | } 16 | buildTypes { 17 | release { 18 | minifyEnabled false 19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 20 | } 21 | } 22 | compileOptions { 23 | sourceCompatibility JavaVersion.VERSION_1_8 24 | targetCompatibility JavaVersion.VERSION_1_8 25 | } 26 | } 27 | 28 | dependencies { 29 | implementation fileTree(include: ['*.jar'], dir: 'libs') 30 | implementation 'androidx.appcompat:appcompat:1.2.0' 31 | implementation 'androidx.constraintlayout:constraintlayout:1.1.3' 32 | testImplementation 'junit:junit:4.12' 33 | androidTestImplementation 'androidx.test.ext:junit:1.1.1' 34 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' 35 | implementation 'com.jakewharton:butterknife:10.2.1' 36 | annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' 37 | implementation project(':zxinglibrary') 38 | implementation project(':barcode') 39 | // implementation 'com.github.dynckathline:barcode:2.8' 40 | // implementation 'org.dync.kathline:zxinglibrary:1.0' 41 | } 42 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/org/dync/zxingscan/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package org.dync.zxingscan; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumented test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("org.dync.zxingscan", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 25 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/dync/zxingscan/Size.java: -------------------------------------------------------------------------------- 1 | package org.dync.zxingscan; 2 | 3 | import androidx.annotation.Nullable; 4 | 5 | public final class Size { 6 | private final int zaa; 7 | private final int zab; 8 | 9 | public Size(int var1, int var2) { 10 | this.zaa = var1; 11 | this.zab = var2; 12 | } 13 | 14 | public final int getWidth() { 15 | return this.zaa; 16 | } 17 | 18 | public final int getHeight() { 19 | return this.zab; 20 | } 21 | 22 | public final boolean equals(@Nullable Object var1) { 23 | if (var1 == null) { 24 | return false; 25 | } else if (this == var1) { 26 | return true; 27 | } else if (var1 instanceof Size) { 28 | Size var2 = (Size)var1; 29 | return this.zaa == var2.zaa && this.zab == var2.zab; 30 | } else { 31 | return false; 32 | } 33 | } 34 | 35 | public final String toString() { 36 | int var1 = this.zaa; 37 | int var2 = this.zab; 38 | return (new StringBuilder(23)).append(var1).append("x").append(var2).toString(); 39 | } 40 | 41 | private static NumberFormatException zaa(String var0) { 42 | throw new NumberFormatException((new StringBuilder(16 + String.valueOf(var0).length())).append("Invalid Size: \"").append(var0).append("\"").toString()); 43 | } 44 | 45 | public static Size parseSize(String var0) throws NumberFormatException { 46 | if (var0 == null) { 47 | throw new IllegalArgumentException("string must not be null"); 48 | } else { 49 | int var1; 50 | if ((var1 = var0.indexOf(42)) < 0) { 51 | var1 = var0.indexOf(120); 52 | } 53 | 54 | if (var1 < 0) { 55 | throw zaa(var0); 56 | } else { 57 | try { 58 | return new Size(Integer.parseInt(var0.substring(0, var1)), Integer.parseInt(var0.substring(var1 + 1))); 59 | } catch (NumberFormatException var2) { 60 | throw zaa(var0); 61 | } 62 | } 63 | } 64 | } 65 | 66 | public final int hashCode() { 67 | return this.zab ^ (this.zaa << 16 | this.zaa >>> 16); 68 | } 69 | } 70 | 71 | -------------------------------------------------------------------------------- /app/src/main/res/color/app_dialog_button_color_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_dialog_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DyncKathline/ZxingScan/e87cd33c33d6a2d3779498a80e7ee33cebad28aa/app/src/main/res/drawable/icon.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/rescan_shape_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shouquan_qrcode_g_gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shouquan_qrcode_ic_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/shouquan_qrcode_s_flashgun.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_create_code.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 17 | 18 | 22 | 23 |