diff --git a/android-zxingLibrary.iml b/android-zxingLibrary.iml index e065fcc..ca79456 100644 --- a/android-zxingLibrary.iml +++ b/android-zxingLibrary.iml @@ -1,5 +1,5 @@ - + diff --git a/app/app.iml b/app/app.iml index 5b769b5..31fd814 100644 --- a/app/app.iml +++ b/app/app.iml @@ -17,29 +17,29 @@ - - + + - - - - + + + - - - - + + + + @@ -54,6 +54,13 @@ + + + + + + + @@ -61,13 +68,6 @@ - - - - - - - @@ -75,53 +75,97 @@ - + + + + + + + + + + + - + + + + + + - - - - + + + + + + + + + + + + + + + + + + - - + + + + + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 3dba215..96d089a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion '25.0.2' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { applicationId "com.uuch.android_zxinglibrary" minSdkVersion 14 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -20,14 +20,13 @@ android { } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - // compile project(':lib-zxing') - compile 'cn.yipianfengye.android:zxing-library:2.2' - compile 'com.android.support:appcompat-v7:25.1.1' - compile 'com.android.support:design:25.1.1' - compile 'pub.devrel:easypermissions:0.2.0' - testCompile 'junit:junit:4.12' + implementation fileTree(include: ['*.jar'], dir: 'libs') +// androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', { +// exclude group: 'com.android.support', module: 'support-annotations' +// }) + implementation project(':lib-zxing') + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'pub.devrel:easypermissions:0.2.0' + testImplementation 'junit:junit:4.12' } \ No newline at end of file diff --git a/app/src/androidTest/java/com/uuch/android_zxinglibrary/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/uuch/android_zxinglibrary/ExampleInstrumentedTest.java index 4a8b8a8..44b74c7 100644 --- a/app/src/androidTest/java/com/uuch/android_zxinglibrary/ExampleInstrumentedTest.java +++ b/app/src/androidTest/java/com/uuch/android_zxinglibrary/ExampleInstrumentedTest.java @@ -1,8 +1,8 @@ package com.uuch.android_zxinglibrary; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/app/src/main/java/com/uuch/android_zxinglibrary/BaseActivity.java b/app/src/main/java/com/uuch/android_zxinglibrary/BaseActivity.java index 4d6779e..8e5a6c3 100644 --- a/app/src/main/java/com/uuch/android_zxinglibrary/BaseActivity.java +++ b/app/src/main/java/com/uuch/android_zxinglibrary/BaseActivity.java @@ -1,13 +1,9 @@ package com.uuch.android_zxinglibrary; -import android.content.pm.PackageManager; -import android.os.Build; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AlertDialog; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import androidx.appcompat.app.AppCompatActivity; + public class BaseActivity extends AppCompatActivity { @Override diff --git a/app/src/main/java/com/uuch/android_zxinglibrary/MainActivity.java b/app/src/main/java/com/uuch/android_zxinglibrary/MainActivity.java index e0f4d30..336facd 100644 --- a/app/src/main/java/com/uuch/android_zxinglibrary/MainActivity.java +++ b/app/src/main/java/com/uuch/android_zxinglibrary/MainActivity.java @@ -5,8 +5,7 @@ import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v7.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; import android.view.View; import android.widget.Button; import android.widget.Toast; diff --git a/app/src/main/java/com/uuch/android_zxinglibrary/SecondActivity.java b/app/src/main/java/com/uuch/android_zxinglibrary/SecondActivity.java index 2af91c4..6ed5b22 100644 --- a/app/src/main/java/com/uuch/android_zxinglibrary/SecondActivity.java +++ b/app/src/main/java/com/uuch/android_zxinglibrary/SecondActivity.java @@ -3,7 +3,6 @@ import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.LinearLayout; diff --git a/app/src/main/java/com/uuch/android_zxinglibrary/ThreeActivity.java b/app/src/main/java/com/uuch/android_zxinglibrary/ThreeActivity.java index 232ee52..9a4f63d 100644 --- a/app/src/main/java/com/uuch/android_zxinglibrary/ThreeActivity.java +++ b/app/src/main/java/com/uuch/android_zxinglibrary/ThreeActivity.java @@ -3,10 +3,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; -import android.support.design.widget.FloatingActionButton; -import android.support.design.widget.Snackbar; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; + import android.text.TextUtils; import android.view.View; import android.widget.Button; diff --git a/app/src/main/java/com/uuch/android_zxinglibrary/utils/CheckPermissionUtils.java b/app/src/main/java/com/uuch/android_zxinglibrary/utils/CheckPermissionUtils.java index ffe0dbf..7d2dadb 100644 --- a/app/src/main/java/com/uuch/android_zxinglibrary/utils/CheckPermissionUtils.java +++ b/app/src/main/java/com/uuch/android_zxinglibrary/utils/CheckPermissionUtils.java @@ -3,7 +3,7 @@ import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; -import android.support.v4.content.ContextCompat; +import androidx.core.content.ContextCompat; import java.util.ArrayList; import java.util.List; diff --git a/app/src/main/res/layout/content_three.xml b/app/src/main/res/layout/content_three.xml index 19b46d2..1e22c09 100644 --- a/app/src/main/res/layout/content_three.xml +++ b/app/src/main/res/layout/content_three.xml @@ -1,5 +1,5 @@ - - + diff --git a/build.gradle b/build.gradle index b78a0b8..66778a6 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,13 @@ buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.1' + classpath 'com.android.tools.build:gradle:3.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -15,6 +19,10 @@ buildscript { allprojects { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } } diff --git a/gradle.properties b/gradle.properties index aac7c9b..9e6fce1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9c31301..4ca3cc8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/lib-zxing/build.gradle b/lib-zxing/build.gradle index 1bf2e58..28773f9 100644 --- a/lib-zxing/build.gradle +++ b/lib-zxing/build.gradle @@ -1,16 +1,16 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 25 - buildToolsVersion '25.0.2' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 14 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -22,19 +22,18 @@ android { } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - compile 'com.android.support:appcompat-v7:25.1.1' - compile 'com.android.support:support-v4:25.1.1' - testCompile 'junit:junit:4.12' + implementation fileTree(include: ['*.jar'], dir: 'libs') +// androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', { +// exclude group: 'com.android.support', module: 'support-annotations' +// }) + implementation 'androidx.appcompat:appcompat:1.1.0' + testImplementation 'junit:junit:4.12' } ext { - PUBLISH_GROUP_ID = 'cn.yipianfengye.android' + PUBLISH_GROUP_ID = 'com.github.leyan95' PUBLISH_ARTIFACT_ID = 'zxing-library' - PUBLISH_VERSION = '2.2' + PUBLISH_VERSION = '0.1.3-PRE' } apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle' diff --git a/lib-zxing/lib-zxing.iml b/lib-zxing/lib-zxing.iml index de1f70c..7424456 100644 --- a/lib-zxing/lib-zxing.iml +++ b/lib-zxing/lib-zxing.iml @@ -1,5 +1,5 @@ - + @@ -17,30 +17,30 @@ - - + + - - - - + + + - - - - + + + + @@ -55,6 +55,13 @@ + + + + + + + @@ -62,13 +69,6 @@ - - - - - - - @@ -76,56 +76,79 @@ + + + + + + + - + + + + + + - - + + + + - - - - + + + + + + + + + + + + + - - + + + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lib-zxing/src/androidTest/java/com/uuzuche/lib_zxing/ExampleInstrumentedTest.java b/lib-zxing/src/androidTest/java/com/uuzuche/lib_zxing/ExampleInstrumentedTest.java index 8d6d5d2..47c92fe 100644 --- a/lib-zxing/src/androidTest/java/com/uuzuche/lib_zxing/ExampleInstrumentedTest.java +++ b/lib-zxing/src/androidTest/java/com/uuzuche/lib_zxing/ExampleInstrumentedTest.java @@ -1,8 +1,8 @@ package com.uuzuche.lib_zxing; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; +import androidx.test.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/lib-zxing/src/main/AndroidManifest.xml b/lib-zxing/src/main/AndroidManifest.xml index 35948b6..34bfced 100644 --- a/lib-zxing/src/main/AndroidManifest.xml +++ b/lib-zxing/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + diff --git a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureActivity.java b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureActivity.java index 567af8e..f83c685 100644 --- a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureActivity.java +++ b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureActivity.java @@ -3,9 +3,10 @@ import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; import android.util.Log; +import androidx.appcompat.app.AppCompatActivity; + import com.uuzuche.lib_zxing.R; /** diff --git a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureFragment.java b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureFragment.java index 46bfa75..981a007 100644 --- a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureFragment.java +++ b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CaptureFragment.java @@ -8,8 +8,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Vibrator; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.SurfaceHolder; diff --git a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CodeUtils.java b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CodeUtils.java index 4026c54..6834041 100644 --- a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CodeUtils.java +++ b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/activity/CodeUtils.java @@ -2,7 +2,6 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; -import android.graphics.Canvas; import android.graphics.Matrix; import android.hardware.Camera; import android.os.Bundle; @@ -24,7 +23,6 @@ import com.uuzuche.lib_zxing.decoding.DecodeFormatManager; import java.util.Hashtable; -import java.util.Objects; import java.util.Vector; /** @@ -38,12 +36,12 @@ public class CodeUtils { public static final int RESULT_SUCCESS = 1; public static final int RESULT_FAILED = 2; - public static final String LAYOUT_ID = "layout_id"; - + static final String LAYOUT_ID = "layout_id"; /** * 解析二维码图片工具类 + * * @param analyzeCallback */ public static void analyzeBitmap(String path, AnalyzeCallback analyzeCallback) { @@ -53,7 +51,6 @@ public static void analyzeBitmap(String path, AnalyzeCallback analyzeCallback) { */ BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; // 先获取原大小 - Bitmap mBitmap = BitmapFactory.decodeFile(path, options); options.inJustDecodeBounds = false; // 获取新的大小 int sampleSize = (int) (options.outHeight / (float) 400); @@ -61,25 +58,25 @@ public static void analyzeBitmap(String path, AnalyzeCallback analyzeCallback) { if (sampleSize <= 0) sampleSize = 1; options.inSampleSize = sampleSize; - mBitmap = BitmapFactory.decodeFile(path, options); + Bitmap mBitmap = BitmapFactory.decodeFile(path, options); + analyzeBitmap(mBitmap, analyzeCallback); + } + + public static void analyzeBitmap(Bitmap mBitmap, AnalyzeCallback analyzeCallback) { MultiFormatReader multiFormatReader = new MultiFormatReader(); // 解码的参数 - Hashtable hints = new Hashtable(2); + Hashtable hints = new Hashtable<>(2); // 可以解析的编码类型 - Vector decodeFormats = new Vector(); - if (decodeFormats == null || decodeFormats.isEmpty()) { - decodeFormats = new Vector(); - - // 这里设置可扫描的类型,我这里选择了都支持 - decodeFormats.addAll(DecodeFormatManager.ONE_D_FORMATS); - decodeFormats.addAll(DecodeFormatManager.QR_CODE_FORMATS); - decodeFormats.addAll(DecodeFormatManager.DATA_MATRIX_FORMATS); - } + Vector decodeFormats; + decodeFormats = new Vector<>(); + + // 这里设置可扫描的类型,我这里选择了都支持 + decodeFormats.addAll(DecodeFormatManager.ONE_D_FORMATS); + decodeFormats.addAll(DecodeFormatManager.QR_CODE_FORMATS); + decodeFormats.addAll(DecodeFormatManager.DATA_MATRIX_FORMATS); hints.put(DecodeHintType.POSSIBLE_FORMATS, decodeFormats); - // 设置继续的字符编码格式为UTF8 - // hints.put(DecodeHintType.CHARACTER_SET, "UTF8"); // 设置解析配置参数 multiFormatReader.setHints(hints); @@ -104,18 +101,19 @@ public static void analyzeBitmap(String path, AnalyzeCallback analyzeCallback) { /** * 生成二维码图片 + * * @param text * @param w * @param h * @param logo * @return */ - public static Bitmap createImage(String text,int w,int h,Bitmap logo) { + public static Bitmap createImage(String text, int w, int h, Bitmap logo) { if (TextUtils.isEmpty(text)) { return null; } try { - Bitmap scaleLogo = getScaleLogo(logo,w,h); + Bitmap scaleLogo = getScaleLogo(logo, w, h); int offsetX = w / 2; int offsetY = h / 2; @@ -138,17 +136,17 @@ public static Bitmap createImage(String text,int w,int h,Bitmap logo) { int[] pixels = new int[w * h]; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { - if(x >= offsetX && x < offsetX + scaleWidth && y>= offsetY && y < offsetY + scaleHeight){ - int pixel = scaleLogo.getPixel(x-offsetX,y-offsetY); - if(pixel == 0){ - if(bitMatrix.get(x, y)){ + if (x >= offsetX && x < offsetX + scaleWidth && y >= offsetY && y < offsetY + scaleHeight) { + int pixel = scaleLogo.getPixel(x - offsetX, y - offsetY); + if (pixel == 0) { + if (bitMatrix.get(x, y)) { pixel = 0xff000000; - }else{ + } else { pixel = 0xffffffff; } } pixels[y * w + x] = pixel; - }else{ + } else { if (bitMatrix.get(x, y)) { pixels[y * w + x] = 0xff000000; } else { @@ -167,19 +165,20 @@ public static Bitmap createImage(String text,int w,int h,Bitmap logo) { return null; } - private static Bitmap getScaleLogo(Bitmap logo,int w,int h){ - if(logo == null)return null; + private static Bitmap getScaleLogo(Bitmap logo, int w, int h) { + if (logo == null) { + return null; + } Matrix matrix = new Matrix(); - float scaleFactor = Math.min(w * 1.0f / 5 / logo.getWidth(), h * 1.0f / 5 /logo.getHeight()); - matrix.postScale(scaleFactor,scaleFactor); - Bitmap result = Bitmap.createBitmap(logo, 0, 0, logo.getWidth(), logo.getHeight(), matrix, true); - return result; + float scaleFactor = Math.min(w * 1.0f / 5 / logo.getWidth(), h * 1.0f / 5 / logo.getHeight()); + matrix.postScale(scaleFactor, scaleFactor); + return Bitmap.createBitmap(logo, 0, 0, logo.getWidth(), logo.getHeight(), matrix, true); } /** * 解析二维码结果 */ - public interface AnalyzeCallback{ + public interface AnalyzeCallback { public void onAnalyzeSuccess(Bitmap mBitmap, String result); @@ -189,6 +188,7 @@ public interface AnalyzeCallback{ /** * 为CaptureFragment设置layout参数 + * * @param captureFragment * @param layoutId */ diff --git a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/CaptureActivityHandler.java b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/CaptureActivityHandler.java index 31152f4..1d7eaa7 100644 --- a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/CaptureActivityHandler.java +++ b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/CaptureActivityHandler.java @@ -28,7 +28,6 @@ import com.google.zxing.BarcodeFormat; import com.google.zxing.Result; import com.uuzuche.lib_zxing.R; -import com.uuzuche.lib_zxing.activity.CaptureActivity; import com.uuzuche.lib_zxing.activity.CaptureFragment; import com.uuzuche.lib_zxing.camera.CameraManager; import com.uuzuche.lib_zxing.view.ViewfinderResultPointCallback; diff --git a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/DecodeHandler.java b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/DecodeHandler.java index 660af99..5d4f2f3 100644 --- a/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/DecodeHandler.java +++ b/lib-zxing/src/main/java/com/uuzuche/lib_zxing/decoding/DecodeHandler.java @@ -29,7 +29,6 @@ import com.google.zxing.Result; import com.google.zxing.common.HybridBinarizer; import com.uuzuche.lib_zxing.R; -import com.uuzuche.lib_zxing.activity.CaptureActivity; import com.uuzuche.lib_zxing.activity.CaptureFragment; import com.uuzuche.lib_zxing.camera.CameraManager; import com.uuzuche.lib_zxing.camera.PlanarYUVLuminanceSource; diff --git a/local.properties b/local.properties index d539fd5..e6a50fd 100644 --- a/local.properties +++ b/local.properties @@ -1,11 +1,8 @@ -## This file is automatically generated by Android Studio. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must *NOT* be checked into Version Control Systems, +## This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. -#Tue Jul 04 10:15:38 CST 2017 -sdk.dir=/Users/aaron/document/sdk +#Thu Aug 01 17:09:32 CST 2019 +sdk.dir=D\:\\Dev\\AndroidSDk