Skip to content

Commit 36ccf55

Browse files
committed
优化注释
1 parent 218cc0e commit 36ccf55

File tree

120 files changed

+2116
-1631
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+2116
-1631
lines changed

README.md

Lines changed: 178 additions & 99 deletions
Large diffs are not rendered by default.

app/build.gradle

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ plugins {
44
}
55

66
android {
7-
compileSdkVersion build_versions.compileSdk
8-
buildToolsVersion build_versions.buildTools
7+
compileSdk build_versions.compileSdk
8+
99
defaultConfig {
1010
applicationId "com.king.mlkit.vision.app"
11-
minSdkVersion build_versions.minSdk
12-
targetSdkVersion build_versions.targetSdk
11+
minSdk build_versions.minSdk
12+
targetSdk build_versions.targetSdk
1313
versionCode app_version.versionCode
1414
versionName app_version.versionName
15+
1516
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1617

1718
ndk {
@@ -26,9 +27,6 @@ android {
2627
}
2728
}
2829

29-
lintOptions {
30-
abortOnError false
31-
}
3230

3331
compileOptions {
3432
sourceCompatibility JavaVersion.VERSION_1_8
@@ -38,6 +36,10 @@ android {
3836
kotlinOptions {
3937
jvmTarget = '1.8'
4038
}
39+
lint {
40+
abortOnError false
41+
}
42+
namespace 'com.king.mlkit.vision.app'
4143
}
4244

4345
dependencies {
@@ -46,16 +48,16 @@ dependencies {
4648
androidTestImplementation deps.test.runner
4749
androidTestImplementation deps.test.espresso
4850

49-
implementation deps.androidx.design
51+
implementation deps.androidx.material
5052
implementation deps.androidx.appcompat
5153
implementation deps.androidx.constraintlayout
5254

53-
implementation deps.kotlin
5455
implementation deps.corektx
5556

5657
implementation deps.app_dialog
5758

5859
implementation project(':mlkit-camera-core')
60+
implementation project(':mlkit-common')
5961
implementation project(':mlkit-barcode-scanning')
6062
implementation project(':mlkit-face-detection')
6163
implementation project(':mlkit-face-mesh-detection')

app/release/app-release.apk

-4.76 KB
Binary file not shown.

app/release/output-metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"type": "SINGLE",
1212
"filters": [],
1313
"attributes": [],
14-
"versionCode": 6,
15-
"versionName": "1.2.0",
14+
"versionCode": 7,
15+
"versionName": "1.3.0",
1616
"outputFile": "app-release.apk"
1717
}
1818
],

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.king.mlkit.vision.app">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43

54
<uses-permission android:name="android.permission.CAMERA"/>
65
<uses-permission android:name="android.permission.INTERNET"/>
@@ -97,9 +96,10 @@
9796
android:name="com.google.android.gms.version"
9897
android:value="@integer/google_play_services_version"/>
9998

100-
<!-- <meta-data-->
101-
<!-- android:name="com.google.firebase.ml.vision.DEPENDENCIES"-->
102-
<!-- android:value="barcode,face,ocr,ica" />-->
99+
<meta-data
100+
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
101+
android:value="barcode,face,ocr,ica" />
102+
103103
</application>
104104

105105
</manifest>

app/src/main/java/com/king/mlkit/vision/app/MainActivity.kt

Lines changed: 83 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package com.king.mlkit.vision.app
1717

1818
import android.Manifest
1919
import android.content.Intent
20+
import android.net.Uri
2021
import android.os.Bundle
2122
import android.provider.MediaStore
2223
import android.view.View
@@ -26,15 +27,15 @@ import androidx.appcompat.app.AppCompatActivity
2627
import com.google.mlkit.vision.barcode.common.Barcode
2728
import com.king.app.dialog.AppDialog
2829
import com.king.app.dialog.AppDialogConfig
29-
import com.king.mlkit.vision.app.`object`.MultipleObjectDetectionActivity
30-
import com.king.mlkit.vision.app.`object`.ObjectDetectionActivity
3130
import com.king.mlkit.vision.app.barcode.BarcodeScanningActivity
3231
import com.king.mlkit.vision.app.barcode.MultipleQRCodeScanningActivity
3332
import com.king.mlkit.vision.app.barcode.QRCodeScanningActivity
3433
import com.king.mlkit.vision.app.face.FaceDetectionActivity
3534
import com.king.mlkit.vision.app.face.FaceMeshDetectionActivity
3635
import com.king.mlkit.vision.app.face.MultipleFaceDetectionActivity
3736
import com.king.mlkit.vision.app.image.ImageLabelingActivity
37+
import com.king.mlkit.vision.app.`object`.MultipleObjectDetectionActivity
38+
import com.king.mlkit.vision.app.`object`.ObjectDetectionActivity
3839
import com.king.mlkit.vision.app.pose.AccuratePoseDetectionActivity
3940
import com.king.mlkit.vision.app.pose.PoseDetectionActivity
4041
import com.king.mlkit.vision.app.segmentation.SelfieSegmentationActivity
@@ -44,20 +45,13 @@ import com.king.mlkit.vision.camera.CameraScan
4445
import com.king.mlkit.vision.camera.analyze.Analyzer.OnAnalyzeListener
4546
import com.king.mlkit.vision.camera.util.LogUtils
4647
import com.king.mlkit.vision.camera.util.PermissionUtils
47-
import java.lang.StringBuilder
48-
4948

49+
/**
50+
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
51+
*/
5052
class MainActivity : AppCompatActivity() {
5153

52-
var isQRCode = false
53-
54-
companion object{
55-
56-
const val REQUEST_CODE_PHOTO = 1
57-
const val REQUEST_CODE_REQUEST_EXTERNAL_STORAGE = 2
58-
59-
const val REQUEST_CODE_SCAN_CODE = 3
60-
}
54+
var isQrCode = false
6155

6256
override fun onCreate(savedInstanceState: Bundle?) {
6357
super.onCreate(savedInstanceState)
@@ -66,69 +60,86 @@ class MainActivity : AppCompatActivity() {
6660

6761
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
6862
super.onActivityResult(requestCode, resultCode, data)
69-
if(resultCode == RESULT_OK){
70-
when(requestCode){
71-
REQUEST_CODE_PHOTO -> processPhoto(data)
63+
if (resultCode == RESULT_OK) {
64+
when (requestCode) {
65+
REQUEST_CODE_PHOTO -> processPhoto(data?.data)
7266
REQUEST_CODE_SCAN_CODE -> processScanResult(data)
7367
}
7468
}
7569
}
7670

77-
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
71+
override fun onRequestPermissionsResult(
72+
requestCode: Int,
73+
permissions: Array<out String>,
74+
grantResults: IntArray
75+
) {
7876
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
79-
if(requestCode == REQUEST_CODE_REQUEST_EXTERNAL_STORAGE && PermissionUtils.requestPermissionsResult(Manifest.permission.READ_EXTERNAL_STORAGE,permissions,grantResults)){
77+
if (requestCode == REQUEST_CODE_REQUEST_EXTERNAL_STORAGE && PermissionUtils.requestPermissionsResult(
78+
Manifest.permission.READ_EXTERNAL_STORAGE,
79+
permissions,
80+
grantResults
81+
)
82+
) {
8083
startPickPhoto()
8184
}
8285
}
8386

8487
fun getContext() = this
8588

86-
private fun processScanResult(data: Intent?){
89+
/**
90+
* 扫描结果
91+
*/
92+
private fun processScanResult(data: Intent?) {
8793
val text = CameraScan.parseScanResult(data)
88-
Toast.makeText(this,text,Toast.LENGTH_SHORT).show()
94+
Toast.makeText(this, text, Toast.LENGTH_SHORT).show()
8995
}
9096

91-
private fun processPhoto(data: Intent?){
97+
private fun processPhoto(data: Uri?) {
9298
data?.let {
93-
try{
94-
val src = MediaStore.Images.Media.getBitmap(contentResolver,it.data)
95-
BarcodeDecoder.process(src, object : OnAnalyzeListener<List<Barcode>?> {
99+
try {
100+
val srcBitmap = MediaStore.Images.Media.getBitmap(contentResolver, it)
101+
BarcodeDecoder.process(srcBitmap, object : OnAnalyzeListener<List<Barcode>?> {
96102
override fun onSuccess(result: List<Barcode>) {
97-
if(result.isNotEmpty()){
103+
if (result.isNotEmpty()) {
98104
val buffer = StringBuilder()
99-
val bitmap = src.drawRect { canvas, paint ->
105+
// 识别成功,在图片上框出结果
106+
val bitmap = srcBitmap.drawRect { canvas, paint ->
100107
for ((index, barcode) in result.withIndex()) {
101-
buffer.append("[$index] ").append(barcode.displayValue).append("\n")
102-
barcode.boundingBox?.let{ box ->
108+
buffer.append("[$index] ").append(barcode.displayValue)
109+
.append("\n")
110+
barcode.boundingBox?.let { box ->
103111
canvas.drawRect(box, paint)
104112
}
105-
106113
}
107114
}
108115

109-
val config = AppDialogConfig(getContext(),R.layout.barcode_result_dialog)
116+
val config =
117+
AppDialogConfig(getContext(), R.layout.barcode_result_dialog)
110118
config.setContent(buffer)
111-
.setHideCancel(true)
112-
.setOnClickConfirm {
113-
AppDialog.INSTANCE.dismissDialog()
114-
}
119+
.setHideCancel(true)
120+
.setOnClickConfirm {
121+
AppDialog.INSTANCE.dismissDialog()
122+
}
115123
val imageView = config.getView<ImageView>(R.id.ivDialogContent)
116124
imageView.setImageBitmap(bitmap)
117125
AppDialog.INSTANCE.showDialog(config)
118-
}else{
126+
} else {
119127
LogUtils.d("result is null")
120-
Toast.makeText(getContext(),"result is null", Toast.LENGTH_SHORT).show()
128+
Toast.makeText(getContext(), "result is null", Toast.LENGTH_SHORT)
129+
.show()
121130
}
122131
}
123-
override fun onFailure() {
132+
133+
override fun onFailure(e: Exception?) {
124134
LogUtils.d("onFailure")
125-
Toast.makeText(getContext(),"onFailure", Toast.LENGTH_SHORT).show()
135+
Toast.makeText(getContext(), "onFailure", Toast.LENGTH_SHORT).show()
126136
}
127-
//如果指定具体的识别条码类型,速度会更快
128-
},if(isQRCode) Barcode.FORMAT_QR_CODE else Barcode.FORMAT_ALL_FORMATS)
129-
}catch (e: Exception){
137+
138+
// 如果指定具体的识别条码类型,速度会更快
139+
}, if (isQrCode) Barcode.FORMAT_QR_CODE else Barcode.FORMAT_ALL_FORMATS)
140+
} catch (e: Exception) {
130141
e.printStackTrace()
131-
Toast.makeText(getContext(),e.message, Toast.LENGTH_SHORT).show()
142+
Toast.makeText(getContext(), e.message, Toast.LENGTH_SHORT).show()
132143
}
133144

134145
}
@@ -138,26 +149,38 @@ class MainActivity : AppCompatActivity() {
138149
startActivity(Intent(this, cls))
139150
}
140151

141-
private fun pickPhotoClicked(isQRCode: Boolean){
142-
this.isQRCode = isQRCode
143-
if(PermissionUtils.checkPermission(getContext(),Manifest.permission.READ_EXTERNAL_STORAGE)){
152+
private fun pickPhotoClicked(isQRCode: Boolean) {
153+
this.isQrCode = isQRCode
154+
if (PermissionUtils.checkPermission(
155+
getContext(),
156+
Manifest.permission.READ_EXTERNAL_STORAGE
157+
)
158+
) {
144159
startPickPhoto()
145-
}else{
146-
PermissionUtils.requestPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE,REQUEST_CODE_REQUEST_EXTERNAL_STORAGE)
160+
} else {
161+
PermissionUtils.requestPermission(
162+
this,
163+
Manifest.permission.READ_EXTERNAL_STORAGE,
164+
REQUEST_CODE_REQUEST_EXTERNAL_STORAGE
165+
)
147166
}
148167
}
149168

150-
private fun startPickPhoto(){
151-
val pickIntent = Intent(Intent.ACTION_PICK,
152-
MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
169+
/**
170+
* 选择照片 - 条形码/二维码 图片识别
171+
*/
172+
private fun startPickPhoto() {
173+
val pickIntent = Intent(
174+
Intent.ACTION_PICK,
175+
MediaStore.Images.Media.EXTERNAL_CONTENT_URI
176+
)
153177
pickIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*")
154178
startActivityForResult(pickIntent, REQUEST_CODE_PHOTO)
155179
}
156180

157-
158-
fun onClick(v: View){
159-
when (v.id){
160-
R.id.btnQRCodeScanning -> startActivityForResult(Intent(this,QRCodeScanningActivity::class.java),REQUEST_CODE_SCAN_CODE)
181+
fun onClick(v: View) {
182+
when (v.id) {
183+
R.id.btnQRCodeScanning -> startActivityForResult(Intent(this, QRCodeScanningActivity::class.java), REQUEST_CODE_SCAN_CODE)
161184
R.id.btnMultipleQRCodeScanning -> startActivity(MultipleQRCodeScanningActivity::class.java)
162185
R.id.btnBarcodeScanning -> startActivity(BarcodeScanningActivity::class.java)
163186
R.id.btnQRCodeRecognitionFromImage -> pickPhotoClicked(true)
@@ -175,5 +198,11 @@ class MainActivity : AppCompatActivity() {
175198
}
176199
}
177200

201+
companion object {
202+
203+
const val REQUEST_CODE_PHOTO = 1
204+
const val REQUEST_CODE_REQUEST_EXTERNAL_STORAGE = 2
205+
const val REQUEST_CODE_SCAN_CODE = 3
206+
}
178207

179208
}

app/src/main/java/com/king/mlkit/vision/app/barcode/BarcodeScanningActivity.kt

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.king.mlkit.vision.app.drawRect
2424
import com.king.mlkit.vision.barcode.BarcodeCameraScanActivity
2525
import com.king.mlkit.vision.camera.AnalyzeResult
2626
import com.king.mlkit.vision.camera.config.ResolutionCameraConfig
27-
import java.lang.StringBuilder
2827

2928
/**
3029
* @author <a href="mailto:jenly1314@gmail.com">Jenly</a>
@@ -42,8 +41,8 @@ class BarcodeScanningActivity : BarcodeCameraScanActivity() {
4241

4342
cameraScan.setAnalyzeImage(false)
4443
val buffer = StringBuilder()
45-
val bitmap = result.bitmap.drawRect {canvas,paint ->
46-
for ((index,data) in result.result.withIndex()) {
44+
val bitmap = result.bitmap.drawRect { canvas, paint ->
45+
for ((index, data) in result.result.withIndex()) {
4746
buffer.append("[$index] ").append(data.displayValue).append("\n")
4847
data.boundingBox?.let { box ->
4948
canvas.drawRect(box, paint)
@@ -53,15 +52,15 @@ class BarcodeScanningActivity : BarcodeCameraScanActivity() {
5352

5453
val config = AppDialogConfig(this, R.layout.barcode_result_dialog)
5554
config.setContent(buffer).setOnClickConfirm {
56-
AppDialog.INSTANCE.dismissDialog()
57-
cameraScan.setAnalyzeImage(true)
58-
}.setOnClickCancel {
59-
AppDialog.INSTANCE.dismissDialog()
60-
finish()
61-
}
55+
AppDialog.INSTANCE.dismissDialog()
56+
cameraScan.setAnalyzeImage(true)
57+
}.setOnClickCancel {
58+
AppDialog.INSTANCE.dismissDialog()
59+
finish()
60+
}
6261
val imageView = config.getView<ImageView>(R.id.ivDialogContent)
6362
imageView.setImageBitmap(bitmap)
64-
AppDialog.INSTANCE.showDialog(config,false)
63+
AppDialog.INSTANCE.showDialog(config, false)
6564
}
6665

6766

0 commit comments

Comments
 (0)