调整了人脸识别背景及提示位置
This commit is contained in:
@@ -5,15 +5,12 @@ import android.graphics.Outline
|
||||
import android.graphics.Typeface
|
||||
import android.hardware.display.DisplayManager
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.view.ViewOutlineProvider
|
||||
import android.widget.AdapterView
|
||||
import android.widget.ArrayAdapter
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.camera.core.CameraSelector
|
||||
import androidx.camera.core.ImageAnalysis
|
||||
import androidx.camera.core.ImageCapture
|
||||
@@ -36,7 +33,6 @@ import com.sw.dualscreen.presentation.SecondaryScreenPresentation
|
||||
import com.sw.dualscreen.sdk.SensorScaleUtils
|
||||
import com.sw.dualscreen.utils.GlideUtils
|
||||
import com.sw.dualscreen.view.CustomBottomSheetDialog
|
||||
import com.sw.dualscreen.view.CustomDialog
|
||||
import com.sw.dualscreen.viewmodel.BaseViewModel
|
||||
import com.sw.dualscreen.viewmodel.UserViewModel
|
||||
import com.sw.plate.utils.ToastUtils
|
||||
|
||||
@@ -79,7 +79,7 @@ class SecondaryScreenPresentation(
|
||||
private val debouncer = Debouncer(500)
|
||||
private var recognitionTime: Long = 0L // 人脸识别时的时间
|
||||
private var recognitionWeight: Double = 0.0 // 人脸识别时的重量
|
||||
private var lastFaceTrackId: Int = 0 // 上一次的人脸信息
|
||||
private var lastFaceTrackId: Int = -1 // 上一次的人脸信息
|
||||
private var mealPickupMode: Int = 0 // 取餐模式 0 即放即取 1 余量取餐
|
||||
|
||||
// 当前步骤
|
||||
@@ -176,6 +176,7 @@ class SecondaryScreenPresentation(
|
||||
binding.flPreview.visibility = View.VISIBLE
|
||||
binding.ivImg.visibility = View.VISIBLE
|
||||
binding.flFace.visibility = View.INVISIBLE
|
||||
binding.tvFaceTip.visibility = View.GONE
|
||||
pauseCamera()
|
||||
binding.tvBottomTip.visibility = View.VISIBLE
|
||||
itemUserNutritionBinding.clNutritionData.visibility = View.GONE
|
||||
@@ -750,7 +751,7 @@ class SecondaryScreenPresentation(
|
||||
* @param facePreviewInfoList RGB画面的实时人脸信息
|
||||
*/
|
||||
private fun drawPreviewInfo(facePreviewInfoList: MutableList<FacePreviewInfo?>) {
|
||||
// Timber.d("drawPreviewInfo facePreviewInfoList = ${facePreviewInfoList.size}, rgbFaceRectTransformer = ${rgbFaceRectTransformer != null}")
|
||||
Timber.d("drawPreviewInfo facePreviewInfoList = ${facePreviewInfoList.size}, rgbFaceRectTransformer = ${rgbFaceRectTransformer != null}")
|
||||
if (rgbFaceRectTransformer != null) {
|
||||
val rgbDrawInfoList: MutableList<DrawInfo?>? = recognizeViewModel.getDrawInfo(
|
||||
facePreviewInfoList,
|
||||
@@ -762,9 +763,9 @@ class SecondaryScreenPresentation(
|
||||
}
|
||||
|
||||
if (facePreviewInfoList.isEmpty() || (lastFaceTrackId != facePreviewInfoList[0]!!.trackId)) {
|
||||
if (lastFaceTrackId != 0) {
|
||||
if (lastFaceTrackId != -1) {
|
||||
Timber.i("$lastFaceTrackId 用户离开")
|
||||
lastFaceTrackId = 0
|
||||
lastFaceTrackId = -1
|
||||
postUserData()
|
||||
if (mealPickupMode == 0) {
|
||||
step1()
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.sw.dualscreen.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.WindowManager
|
||||
import timber.log.Timber
|
||||
import kotlin.math.sqrt
|
||||
|
||||
object ScreenUtils {
|
||||
fun printScreenInfo(context: Context, tag: String) {
|
||||
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
||||
val displayMetrics = DisplayMetrics()
|
||||
|
||||
// 方法 1:获取应用可用区域(排除系统装饰,如状态栏)
|
||||
windowManager.defaultDisplay.getMetrics(displayMetrics)
|
||||
|
||||
// 方法 2:获取整个屏幕的物理尺寸(包括状态栏和导航栏)
|
||||
// windowManager.defaultDisplay.getRealMetrics(displayMetrics)
|
||||
|
||||
val screenWidthPx = displayMetrics.widthPixels // 屏幕宽度(像素)
|
||||
val screenHeightPx = displayMetrics.heightPixels // 屏幕高度(像素)
|
||||
val density = displayMetrics.density // 逻辑密度(1.0 = mdpi, 2.0 = xhdpi)
|
||||
val densityDpi = displayMetrics.densityDpi // 屏幕 DPI 分类(160 = mdpi, 320 = xhdpi)
|
||||
val xdpi = displayMetrics.xdpi // 物理水平 DPI
|
||||
val ydpi = displayMetrics.ydpi // 物理垂直 DPI
|
||||
|
||||
// 打印信息
|
||||
Timber.d("$tag 屏幕信息")
|
||||
Timber.d("屏幕分辨率(像素): ${screenWidthPx}x${screenHeightPx}")
|
||||
Timber.d("逻辑密度: $density")
|
||||
Timber.d("DPI 分类: $densityDpi")
|
||||
Timber.d("物理 DPI (x/y): $xdpi / $ydpi")
|
||||
|
||||
// 计算屏幕物理尺寸(英寸)
|
||||
val screenWidthInches = screenWidthPx / xdpi
|
||||
val screenHeightInches = screenHeightPx / ydpi
|
||||
val diagonalInches = sqrt(
|
||||
(screenWidthInches * screenWidthInches + screenHeightInches * screenHeightInches).toDouble()
|
||||
)
|
||||
Timber.d(
|
||||
"屏幕物理尺寸(英寸): %.1f x %.1f (对角线: %.1f\")".format(
|
||||
screenWidthInches, screenHeightInches, diagonalInches
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 172 KiB |
@@ -82,7 +82,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="566dp"
|
||||
android:layout_marginTop="586dp"
|
||||
android:text="请正视屏幕"
|
||||
android:textColor="#ffece7d0"
|
||||
android:textSize="24sp"
|
||||
|
||||
Reference in New Issue
Block a user