diff --git a/app/src/main/java/com/sw/dualscreen/activity/MainActivity.kt b/app/src/main/java/com/sw/dualscreen/activity/MainActivity.kt index ff193be..e029e5c 100644 --- a/app/src/main/java/com/sw/dualscreen/activity/MainActivity.kt +++ b/app/src/main/java/com/sw/dualscreen/activity/MainActivity.kt @@ -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 diff --git a/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt b/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt index f05f518..ed02e9f 100644 --- a/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt +++ b/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt @@ -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) { -// Timber.d("drawPreviewInfo facePreviewInfoList = ${facePreviewInfoList.size}, rgbFaceRectTransformer = ${rgbFaceRectTransformer != null}") + Timber.d("drawPreviewInfo facePreviewInfoList = ${facePreviewInfoList.size}, rgbFaceRectTransformer = ${rgbFaceRectTransformer != null}") if (rgbFaceRectTransformer != null) { val rgbDrawInfoList: MutableList? = 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() diff --git a/app/src/main/java/com/sw/dualscreen/utils/ScreenUtils.kt b/app/src/main/java/com/sw/dualscreen/utils/ScreenUtils.kt new file mode 100644 index 0000000..a3ef7e1 --- /dev/null +++ b/app/src/main/java/com/sw/dualscreen/utils/ScreenUtils.kt @@ -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 + ) + ) + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_face.png b/app/src/main/res/drawable/bg_face.png index 85ba84b..e01d1f2 100644 Binary files a/app/src/main/res/drawable/bg_face.png and b/app/src/main/res/drawable/bg_face.png differ diff --git a/app/src/main/res/layout/presentation_secondary_screen.xml b/app/src/main/res/layout/presentation_secondary_screen.xml index 874049c..efe1961 100644 --- a/app/src/main/res/layout/presentation_secondary_screen.xml +++ b/app/src/main/res/layout/presentation_secondary_screen.xml @@ -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"