Commit 05fa7d8b authored by wanglei's avatar wanglei

...

parent 758e5ac2
......@@ -107,6 +107,8 @@ dependencies {
//机器学习二维码扫描
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"
......
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 com.base.scanqrclear.R
import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.bean.FunctionUIBean
import com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_BANKNOTE
......@@ -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.databinding.ActivityScanOtherBinding
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
class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOtherBinding::inflate) {
......@@ -19,10 +31,8 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
super.initView()
binding.clTop.updatePadding(top = BarUtils.getStatusBarHeight())
}
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_app_exit)
override fun initListener() {
super.initListener()
val adapter = ScanOtherAdapter()
binding.rv.adapter = adapter
......@@ -38,11 +48,52 @@ class ScanOtherActivity : BaseActivity<ActivityScanOtherBinding>(ActivityScanOth
)
adapter.itemClick = { item ->
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() {
immersionBar {
statusBarColor("#FFFFFFFF")
......
......@@ -47,12 +47,45 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="0dp"
android:padding="8dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toTopOf="@id/flAd"
app:layout_constraintTop_toBottomOf="@id/cl_top"
app:spanCount="2"
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>
\ No newline at end of file
......@@ -9,14 +9,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="20dp"
android:layout_margin="8dp"
android:baselineAligned="false"
android:orientation="vertical">
<com.google.android.gms.ads.nativead.MediaView
android:id="@+id/ad_media"
android:layout_width="match_parent"
android:layout_height="153dp"
android:layout_height="150dp"
android:layout_gravity="center_vertical" />
<LinearLayout
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment