Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
scanqrwhite2copy1
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
scanqrwhite2copy1
Commits
05fa7d8b
Commit
05fa7d8b
authored
Feb 21, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
758e5ac2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
93 additions
and
7 deletions
+93
-7
build.gradle.kts
app/build.gradle.kts
+2
-0
ScanOtherActivity.kt
...in/java/com/base/scanqrclear/ui/scan/ScanOtherActivity.kt
+55
-4
activity_scan_other.xml
app/src/main/res/layout/activity_scan_other.xml
+34
-1
layout_admob_app_exit.xml
app/src/main/res/layout/layout_admob_app_exit.xml
+2
-2
No files found.
app/build.gradle.kts
View file @
05fa7d8b
...
@@ -107,6 +107,8 @@ dependencies {
...
@@ -107,6 +107,8 @@ dependencies {
//机器学习二维码扫描
//机器学习二维码扫描
implementation
(
"com.google.mlkit:barcode-scanning:17.3.0"
)
implementation
(
"com.google.mlkit:barcode-scanning:17.3.0"
)
// https://developers.google.com/ml-kit/vision/doc-scanner/android
implementation
(
"com.google.android.gms:play-services-mlkit-document-scanner:16.0.0-beta1"
)
//相机
//相机
val
cameraxVersion
=
"1.2.2"
val
cameraxVersion
=
"1.2.2"
...
...
app/src/main/java/com/base/scanqrclear/ui/scan/ScanOtherActivity.kt
View file @
05fa7d8b
package
com.base.scanqrclear.ui.scan
package
com.base.scanqrclear.ui.scan
import
androidx.activity.addCallback
import
androidx.activity.result.IntentSenderRequest
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.scanqrclear.R
import
com.base.scanqrclear.R
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.bean.FunctionUIBean
import
com.base.scanqrclear.bean.FunctionUIBean
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_BANKNOTE
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_BANKNOTE
...
@@ -11,6 +15,14 @@ import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_DOCUMENT
...
@@ -11,6 +15,14 @@ import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_DOCUMENT
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.databinding.ActivityScanOtherBinding
import
com.base.scanqrclear.databinding.ActivityScanOtherBinding
import
com.base.scanqrclear.utils.BarUtils
import
com.base.scanqrclear.utils.BarUtils
import
com.base.scanqrclear.utils.LogEx
import
com.base.scanqrclear.utils.ToastUtils.toast
import
com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions
import
com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions.RESULT_FORMAT_JPEG
import
com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions.RESULT_FORMAT_PDF
import
com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions.SCANNER_MODE_FULL
import
com.google.mlkit.vision.documentscanner.GmsDocumentScanning
import
com.google.mlkit.vision.documentscanner.GmsDocumentScanningResult
import
com.gyf.immersionbar.ktx.immersionBar
import
com.gyf.immersionbar.ktx.immersionBar
class
ScanOtherActivity
:
BaseActivity
<
ActivityScanOtherBinding
>(
ActivityScanOtherBinding
::
inflate
)
{
class
ScanOtherActivity
:
BaseActivity
<
ActivityScanOtherBinding
>(
ActivityScanOtherBinding
::
inflate
)
{
...
@@ -19,10 +31,8 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
...
@@ -19,10 +31,8 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
super
.
initView
()
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
}
AdsMgr
.
showNative
(
binding
.
flAd
,
R
.
layout
.
layout_admob_app_exit
)
override
fun
initListener
()
{
super
.
initListener
()
val
adapter
=
ScanOtherAdapter
()
val
adapter
=
ScanOtherAdapter
()
binding
.
rv
.
adapter
=
adapter
binding
.
rv
.
adapter
=
adapter
...
@@ -38,11 +48,52 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
...
@@ -38,11 +48,52 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
)
)
adapter
.
itemClick
=
{
item
->
adapter
.
itemClick
=
{
item
->
when
(
item
.
key
)
{
when
(
item
.
key
)
{
KEY_DOCUMENT
->
{
val
options
=
GmsDocumentScannerOptions
.
Builder
()
.
setGalleryImportAllowed
(
false
)
.
setPageLimit
(
2
)
.
setResultFormats
(
RESULT_FORMAT_JPEG
,
RESULT_FORMAT_PDF
)
.
setScannerMode
(
SCANNER_MODE_FULL
)
.
build
()
val
scanner
=
GmsDocumentScanning
.
getClient
(
options
)
val
scannerLauncher
=
registerForActivityResult
(
ActivityResultContracts
.
StartIntentSenderForResult
())
{
result
->
if
(
result
.
resultCode
==
RESULT_OK
)
{
val
data
=
GmsDocumentScanningResult
.
fromActivityResultIntent
(
result
.
data
)
data
?.
pages
?.
forEach
{
page
->
val
imageUri
=
page
.
imageUri
LogEx
.
logDebug
(
TAG
,
"imageUri=$imageUri"
)
}
val
pdfUri
=
data
?.
pdf
?.
uri
val
pdfPageCount
=
data
?.
pdf
?.
pageCount
LogEx
.
logDebug
(
TAG
,
"pdfUri=$pdfUri"
)
LogEx
.
logDebug
(
TAG
,
"pdfPageCount=$pdfPageCount"
)
}
}
scanner
.
getStartScanIntent
(
this
)
.
addOnSuccessListener
{
intentSender
->
scannerLauncher
.
launch
(
IntentSenderRequest
.
Builder
(
intentSender
).
build
())
}
.
addOnFailureListener
{
toast
(
"Don't support GmsDocumentScanner"
,
true
)
}
}
}
}
}
}
}
}
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMainTop
()
}
binding
.
flBack
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
}
override
fun
configSystemBar
()
{
override
fun
configSystemBar
()
{
immersionBar
{
immersionBar
{
statusBarColor
(
"#FFFFFFFF"
)
statusBarColor
(
"#FFFFFFFF"
)
...
...
app/src/main/res/layout/activity_scan_other.xml
View file @
05fa7d8b
...
@@ -47,12 +47,45 @@
...
@@ -47,12 +47,45 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
wrap_content
"
android:layout_height=
"
0dp
"
android:padding=
"8dp"
android:padding=
"8dp"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toTopOf=
"@id/flAd"
app:layout_constraintTop_toBottomOf=
"@id/cl_top"
app:layout_constraintTop_toBottomOf=
"@id/cl_top"
app:spanCount=
"2"
app:spanCount=
"2"
tools:listitem=
"@layout/item_scan"
/>
tools:listitem=
"@layout/item_scan"
/>
<com.base.scanqrclear.ads.NativeParentView
android:id=
"@+id/flAd"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_ecf6ff_10"
android:minHeight=
"240dp"
android:paddingTop=
"8dp"
android:paddingBottom=
"8dp"
app:layout_constraintBottom_toBottomOf=
"parent"
>
<io.supercharge.shimmerlayout.ShimmerLayout
android:id=
"@+id/shimmerLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginHorizontal=
"16dp"
app:shimmer_angle=
"25"
app:shimmer_animation_duration=
"2000"
app:shimmer_auto_start=
"true"
app:shimmer_color=
"#33ffffff"
app:shimmer_mask_width=
"0.2"
>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@mipmap/zhanweitu"
tools:ignore=
"ContentDescription,ImageContrastCheck"
/>
</io.supercharge.shimmerlayout.ShimmerLayout>
</com.base.scanqrclear.ads.NativeParentView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/layout_admob_app_exit.xml
View file @
05fa7d8b
...
@@ -9,14 +9,14 @@
...
@@ -9,14 +9,14 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:layout_margin=
"
20
dp"
android:layout_margin=
"
8
dp"
android:baselineAligned=
"false"
android:baselineAligned=
"false"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<com.google.android.gms.ads.nativead.MediaView
<com.google.android.gms.ads.nativead.MediaView
android:id=
"@+id/ad_media"
android:id=
"@+id/ad_media"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"15
3
dp"
android:layout_height=
"15
0
dp"
android:layout_gravity=
"center_vertical"
/>
android:layout_gravity=
"center_vertical"
/>
<LinearLayout
<LinearLayout
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment