From 50b6fac08d4857245990281bb4a2d244bf20c6ad Mon Sep 17 00:00:00 2001 From: Shuming Liu Date: Fri, 7 Aug 2026 22:35:48 +0800 Subject: [PATCH] beautified UI --- .../studentfaceregistry/MainActivity.kt | 368 +++++++++++++----- .../studentfaceregistry/ui/OverlayView.kt | 92 +++-- .../main/res/drawable/bg_button_primary.xml | 13 + .../main/res/drawable/bg_button_secondary.xml | 13 + app/src/main/res/drawable/bg_camera_frame.xml | 8 + app/src/main/res/drawable/bg_card.xml | 8 + app/src/main/res/drawable/bg_card_click.xml | 13 + app/src/main/res/drawable/bg_chip_white.xml | 5 + app/src/main/res/drawable/bg_header.xml | 7 + app/src/main/res/drawable/bg_input.xml | 8 + app/src/main/res/drawable/bg_panel_light.xml | 5 + app/src/main/res/drawable/ic_face_scan.xml | 47 +++ .../res/drawable/ic_launcher_background.xml | 6 +- .../res/drawable/ic_launcher_foreground.xml | 47 +++ app/src/main/res/drawable/ic_upload.xml | 27 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 2 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 2 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 4561 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5831 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2920 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 3619 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 6243 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7977 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9306 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 12103 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 12092 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15755 bytes app/src/main/res/values/styles.xml | 6 +- 28 files changed, 548 insertions(+), 129 deletions(-) create mode 100644 app/src/main/res/drawable/bg_button_primary.xml create mode 100644 app/src/main/res/drawable/bg_button_secondary.xml create mode 100644 app/src/main/res/drawable/bg_camera_frame.xml create mode 100644 app/src/main/res/drawable/bg_card.xml create mode 100644 app/src/main/res/drawable/bg_card_click.xml create mode 100644 app/src/main/res/drawable/bg_chip_white.xml create mode 100644 app/src/main/res/drawable/bg_header.xml create mode 100644 app/src/main/res/drawable/bg_input.xml create mode 100644 app/src/main/res/drawable/bg_panel_light.xml create mode 100644 app/src/main/res/drawable/ic_face_scan.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ic_upload.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/src/main/java/com/example/studentfaceregistry/MainActivity.kt b/app/src/main/java/com/example/studentfaceregistry/MainActivity.kt index 1d5490a..687a3af 100644 --- a/app/src/main/java/com/example/studentfaceregistry/MainActivity.kt +++ b/app/src/main/java/com/example/studentfaceregistry/MainActivity.kt @@ -4,6 +4,7 @@ import android.Manifest import android.content.SharedPreferences import android.content.pm.PackageManager import android.graphics.Bitmap +import android.graphics.Outline import android.graphics.Rect import android.graphics.RectF import android.graphics.Typeface @@ -14,9 +15,11 @@ import android.util.Size import android.util.Log import android.view.Gravity import android.view.View +import android.view.ViewOutlineProvider import android.widget.EditText import android.widget.Button import android.widget.FrameLayout +import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast @@ -143,27 +146,116 @@ class MainActivity : AppCompatActivity() { cameraExecutor.shutdown() } + private fun dp(value: Int): Int { + return (value * resources.displayMetrics.density).toInt() + } + + private fun primaryButton(text: String, onClick: () -> Unit): Button { + return Button(this).apply { + this.text = text + textSize = 16f + setTextColor(0xFFFFFFFF.toInt()) + typeface = Typeface.DEFAULT_BOLD + isAllCaps = false + setBackgroundResource(R.drawable.bg_button_primary) + minHeight = dp(48) + setPadding(dp(22), 0, dp(22), 0) + setOnClickListener { onClick() } + } + } + + private fun secondaryButton(text: String, onClick: () -> Unit): Button { + return Button(this).apply { + this.text = text + textSize = 16f + setTextColor(0xFF1D4ED8.toInt()) + typeface = Typeface.DEFAULT_BOLD + isAllCaps = false + setBackgroundResource(R.drawable.bg_button_secondary) + minHeight = dp(48) + setPadding(dp(22), 0, dp(22), 0) + setOnClickListener { onClick() } + } + } + + private fun cardButton(iconRes: Int, title: String, subtitle: String, onClick: () -> Unit): View { + return LinearLayout(this).apply { + orientation = LinearLayout.HORIZONTAL + gravity = Gravity.CENTER_VERTICAL + setBackgroundResource(R.drawable.bg_card_click) + isClickable = true + isFocusable = true + elevation = dp(3).toFloat() + setPadding(dp(20), dp(18), dp(20), dp(18)) + setOnClickListener { onClick() } + + addView(FrameLayout(this@MainActivity).apply { + layoutParams = LinearLayout.LayoutParams(dp(52), dp(52)) + setBackgroundResource(R.drawable.bg_button_primary) + addView(ImageView(this@MainActivity).apply { + layoutParams = FrameLayout.LayoutParams(dp(28), dp(28), Gravity.CENTER) + setImageResource(iconRes) + }) + }) + + addView(LinearLayout(this@MainActivity).apply { + orientation = LinearLayout.VERTICAL + layoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + setPadding(dp(16), 0, 0, 0) + + addView(TextView(this@MainActivity).apply { + text = title + textSize = 18f + typeface = Typeface.DEFAULT_BOLD + setTextColor(0xFF0F172A.toInt()) + }) + addView(TextView(this@MainActivity).apply { + text = subtitle + textSize = 13f + setTextColor(0xFF64748B.toInt()) + setPadding(0, dp(4), 0, 0) + }) + }) + + addView(TextView(this@MainActivity).apply { + text = "›" + textSize = 26f + setTextColor(0xFF94A3B8.toInt()) + }) + } + } + private fun createContentView(): View { val root = LinearLayout(this).apply { orientation = LinearLayout.VERTICAL - setBackgroundColor(0xFFF8FAFC.toInt()) + setBackgroundColor(0xFFF1F5F9.toInt()) } val header = LinearLayout(this).apply { orientation = LinearLayout.VERTICAL - setPadding(32, 28, 32, 20) + setBackgroundResource(R.drawable.bg_header) + setPadding(dp(24), dp(58), dp(24), dp(18)) } header.addView(TextView(this).apply { text = "学生人脸识别" - textSize = 24f - setTextColor(0xFF0F172A.toInt()) + textSize = 22f + typeface = Typeface.DEFAULT_BOLD + setTextColor(0xFFFFFFFF.toInt()) }) countText = TextView(this).apply { text = "已入库 0 名学生" - textSize = 15f - setTextColor(0xFF475569.toInt()) + textSize = 13f + setTextColor(0xFFFFFFFF.toInt()) + setBackgroundResource(R.drawable.bg_chip_white) + setPadding(dp(12), dp(6), dp(12), dp(6)) } - header.addView(countText) + header.addView( + countText, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.WRAP_CONTENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { topMargin = dp(10) } + ) val content = FrameLayout(this).apply { layoutParams = LinearLayout.LayoutParams( @@ -192,66 +284,83 @@ class MainActivity : AppCompatActivity() { private fun createHomePanel(): View { return LinearLayout(this).apply { orientation = LinearLayout.VERTICAL - gravity = Gravity.CENTER - setPadding(40, 40, 40, 40) + gravity = Gravity.CENTER_HORIZONTAL + setPadding(dp(24), dp(36), dp(24), dp(36)) addView(TextView(this@MainActivity).apply { text = "请选择要进入的功能" - textSize = 26f + textSize = 22f typeface = Typeface.DEFAULT_BOLD setTextColor(0xFF0F172A.toInt()) gravity = Gravity.CENTER }) addView(TextView(this@MainActivity).apply { - text = "识别和注册上传分开运行,减少同时占用相机、模型和本地服务带来的卡顿。" - textSize = 16f - setTextColor(0xFF475569.toInt()) + text = "识别与注册上传分开运行,避免同时占用相机和模型导致卡顿。" + textSize = 14f + setTextColor(0xFF64748B.toInt()) gravity = Gravity.CENTER - setPadding(0, 20, 0, 36) + setPadding(0, dp(10), 0, dp(28)) }) - addView(Button(this@MainActivity).apply { - text = "进入识别" - textSize = 20f - setPadding(36, 24, 36, 24) - setOnClickListener { switchMode(AppMode.RECOGNITION) } - }) + addView( + cardButton( + R.drawable.ic_face_scan, + "进入识别", + "打开摄像头,实时识别学生身份" + ) { switchMode(AppMode.RECOGNITION) }, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { bottomMargin = dp(16) } + ) - addView(Button(this@MainActivity).apply { - text = "进入注册上传" - textSize = 20f - setPadding(36, 24, 36, 24) - setOnClickListener { switchMode(AppMode.UPLOAD) } - }) + addView( + cardButton( + R.drawable.ic_upload, + "进入注册上传", + "上传学生照片或视频,更新人脸库" + ) { switchMode(AppMode.UPLOAD) }, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ) + ) } } private fun createRecognitionPanel(): View { return LinearLayout(this).apply { orientation = LinearLayout.VERTICAL - setPadding(24, 16, 24, 24) + setPadding(dp(16), dp(12), dp(16), dp(16)) recognitionStatusText = TextView(this@MainActivity).apply { text = "准备进入识别模式" - textSize = 22f + textSize = 18f typeface = Typeface.DEFAULT_BOLD setTextColor(0xFF0F172A.toInt()) - setPadding(8, 8, 8, 20) + setPadding(dp(8), dp(4), dp(8), dp(12)) } addView(recognitionStatusText) val matcherConfigPanel = LinearLayout(this@MainActivity).apply { orientation = LinearLayout.VERTICAL - setPadding(16, 16, 16, 16) - setBackgroundColor(0xFFF1F5F9.toInt()) + setPadding(dp(16), dp(14), dp(16), dp(14)) + setBackgroundResource(R.drawable.bg_panel_light) } - matcherConfigSummaryText = TextView(this@MainActivity).apply { + matcherConfigPanel.addView(TextView(this@MainActivity).apply { + text = "识别参数" textSize = 14f - setTextColor(0xFF475569.toInt()) + typeface = Typeface.DEFAULT_BOLD + setTextColor(0xFF0F172A.toInt()) + }) + + matcherConfigSummaryText = TextView(this@MainActivity).apply { + textSize = 12f + setTextColor(0xFF64748B.toInt()) text = matcherConfigSummary() - setPadding(0, 0, 0, 12) + setPadding(0, dp(2), 0, dp(10)) } matcherConfigPanel.addView(matcherConfigSummaryText) @@ -262,7 +371,7 @@ class MainActivity : AppCompatActivity() { val euclideanColumn = LinearLayout(this@MainActivity).apply { orientation = LinearLayout.VERTICAL layoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) - setPadding(0, 0, 12, 0) + setPadding(0, 0, dp(8), 0) } euclideanColumn.addView(TextView(this@MainActivity).apply { text = "欧氏阈值" @@ -273,15 +382,25 @@ class MainActivity : AppCompatActivity() { setText(formatThreshold(euclideanThreshold)) hint = "0.00" inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL + textSize = 15f setTextColor(0xFF0F172A.toInt()) - setBackgroundColor(0xFFFFFFFF.toInt()) - setPadding(20, 18, 20, 18) + setBackgroundResource(R.drawable.bg_input) + setPadding(dp(12), 0, dp(12), 0) + minHeight = dp(44) } - euclideanColumn.addView(euclideanThresholdInput) + euclideanColumn.addView( + euclideanThresholdInput, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { topMargin = dp(6) } + ) + thresholdRow.addView(euclideanColumn) val cosineColumn = LinearLayout(this@MainActivity).apply { orientation = LinearLayout.VERTICAL layoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + setPadding(dp(8), 0, 0, 0) } cosineColumn.addView(TextView(this@MainActivity).apply { text = "余弦阈值" @@ -291,26 +410,37 @@ class MainActivity : AppCompatActivity() { cosineThresholdInput = EditText(this@MainActivity).apply { setText(formatThreshold(cosineThreshold)) hint = "0.00" - inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL or InputType.TYPE_NUMBER_FLAG_SIGNED + inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL + textSize = 15f setTextColor(0xFF0F172A.toInt()) - setBackgroundColor(0xFFFFFFFF.toInt()) - setPadding(20, 18, 20, 18) + setBackgroundResource(R.drawable.bg_input) + setPadding(dp(12), 0, dp(12), 0) + minHeight = dp(44) } - cosineColumn.addView(cosineThresholdInput) - - thresholdRow.addView(euclideanColumn) + cosineColumn.addView( + cosineThresholdInput, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { topMargin = dp(6) } + ) thresholdRow.addView(cosineColumn) matcherConfigPanel.addView(thresholdRow) - matcherConfigPanel.addView(Button(this@MainActivity).apply { - text = "保存识别参数" - setOnClickListener { saveMatcherConfig() } - }) - matcherConfigPanel.addView(Button(this@MainActivity).apply { - text = "自动校准阈值" - setOnClickListener { applySuggestedThresholds() } - }) + matcherConfigPanel.addView(LinearLayout(this@MainActivity).apply { + orientation = LinearLayout.HORIZONTAL + setPadding(0, dp(12), 0, 0) + addView( + secondaryButton("自动校准阈值") { applySuggestedThresholds() }, + LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + .apply { rightMargin = dp(8) } + ) + addView( + primaryButton("保存识别参数") { saveMatcherConfig() }, + LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + ) + }) addView(matcherConfigPanel) val cameraFrame = FrameLayout(this@MainActivity).apply { @@ -319,39 +449,51 @@ class MainActivity : AppCompatActivity() { 0, 1f ) + setBackgroundResource(R.drawable.bg_camera_frame) + setPadding(dp(4), dp(4), dp(4), dp(4)) } - previewView = PreviewView(this@MainActivity).apply { - scaleType = PreviewView.ScaleType.FILL_CENTER - implementationMode = PreviewView.ImplementationMode.COMPATIBLE - } - overlayView = OverlayView(this@MainActivity) - cameraFrame.addView(previewView, FrameLayout.LayoutParams(-1, -1)) - cameraFrame.addView(overlayView, FrameLayout.LayoutParams(-1, -1)) + cameraFrame.addView( + FrameLayout(this@MainActivity).apply { + clipToOutline = true + outlineProvider = object : ViewOutlineProvider() { + override fun getOutline(view: View, outline: Outline) { + outline.setRoundRect(0, 0, view.width, view.height, dp(16).toFloat()) + } + } + + previewView = PreviewView(this@MainActivity).apply { + scaleType = PreviewView.ScaleType.FILL_CENTER + implementationMode = PreviewView.ImplementationMode.COMPATIBLE + } + overlayView = OverlayView(this@MainActivity) + addView(previewView, FrameLayout.LayoutParams(-1, -1)) + addView(overlayView, FrameLayout.LayoutParams(-1, -1)) + }, + FrameLayout.LayoutParams(-1, -1) + ) addView(cameraFrame) addView(LinearLayout(this@MainActivity).apply { gravity = Gravity.CENTER orientation = LinearLayout.HORIZONTAL - setPadding(12, 20, 12, 8) + setPadding(dp(12), dp(16), dp(12), 0) - addView(Button(this@MainActivity).apply { - text = "返回首页" - setOnClickListener { switchMode(AppMode.HOME) } - }) + addView( + secondaryButton("返回首页") { switchMode(AppMode.HOME) }, + LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + .apply { rightMargin = dp(10) } + ) - pauseRecognitionButton = Button(this@MainActivity).apply { - text = "暂停识别" - setOnClickListener { - recognitionEnabled = !recognitionEnabled - text = if (recognitionEnabled) "暂停识别" else "继续识别" - recognitionStatusText.text = if (recognitionEnabled) "正在识别" else "识别已暂停" - if (!recognitionEnabled) { - overlayView.update(emptyList()) - } - updateAnalyzerState() + pauseRecognitionButton = primaryButton("暂停识别") { + recognitionEnabled = !recognitionEnabled + pauseRecognitionButton.text = if (recognitionEnabled) "暂停识别" else "继续识别" + recognitionStatusText.text = if (recognitionEnabled) "正在识别" else "识别已暂停" + if (!recognitionEnabled) { + overlayView.update(emptyList()) } + updateAnalyzerState() } - addView(pauseRecognitionButton) + addView(pauseRecognitionButton, LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f)) }) } } @@ -360,11 +502,11 @@ class MainActivity : AppCompatActivity() { return LinearLayout(this).apply { orientation = LinearLayout.VERTICAL gravity = Gravity.CENTER_HORIZONTAL - setPadding(40, 48, 40, 48) + setPadding(dp(24), dp(32), dp(24), dp(32)) uploadStatusText = TextView(this@MainActivity).apply { text = "准备进入注册上传模式" - textSize = 24f + textSize = 20f typeface = Typeface.DEFAULT_BOLD setTextColor(0xFF0F172A.toInt()) gravity = Gravity.CENTER @@ -373,38 +515,62 @@ class MainActivity : AppCompatActivity() { addView(TextView(this@MainActivity).apply { setText(R.string.upload_instructions) - textSize = 16f - setTextColor(0xFF475569.toInt()) + textSize = 14f + setTextColor(0xFF64748B.toInt()) gravity = Gravity.CENTER - setPadding(0, 16, 0, 20) + setPadding(0, dp(10), 0, dp(24)) }) - uploadUrlText = TextView(this@MainActivity).apply { - text = "-" - textSize = 20f - typeface = Typeface.MONOSPACE - setTextColor(0xFF0F172A.toInt()) - gravity = Gravity.CENTER - setPadding(24, 20, 24, 20) - setTextIsSelectable(true) - setBackgroundColor(0xFFE2E8F0.toInt()) - } - addView(uploadUrlText) + addView( + LinearLayout(this@MainActivity).apply { + orientation = LinearLayout.VERTICAL + setBackgroundResource(R.drawable.bg_card) + elevation = dp(3).toFloat() + setPadding(dp(18), dp(16), dp(18), dp(16)) + + addView(TextView(this@MainActivity).apply { + text = "上传地址" + textSize = 12f + setTextColor(0xFF64748B.toInt()) + }) + uploadUrlText = TextView(this@MainActivity).apply { + text = "-" + textSize = 18f + typeface = Typeface.MONOSPACE + setTextColor(0xFF0F172A.toInt()) + gravity = Gravity.CENTER + setPadding(dp(12), dp(12), dp(12), dp(12)) + setTextIsSelectable(true) + setBackgroundResource(R.drawable.bg_input) + } + addView( + uploadUrlText, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ).apply { topMargin = dp(8) } + ) + }, + LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT + ) + ) addView(LinearLayout(this@MainActivity).apply { gravity = Gravity.CENTER orientation = LinearLayout.HORIZONTAL - setPadding(12, 28, 12, 8) + setPadding(0, dp(24), 0, 0) - addView(Button(this@MainActivity).apply { - text = "刷新地址" - setOnClickListener { startUploadSession() } - }) - - addView(Button(this@MainActivity).apply { - text = "返回首页" - setOnClickListener { switchMode(AppMode.HOME) } - }) + addView( + secondaryButton("刷新地址") { startUploadSession() }, + LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + .apply { rightMargin = dp(10) } + ) + addView( + primaryButton("返回首页") { switchMode(AppMode.HOME) }, + LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f) + ) }) } } diff --git a/app/src/main/java/com/example/studentfaceregistry/ui/OverlayView.kt b/app/src/main/java/com/example/studentfaceregistry/ui/OverlayView.kt index 442663b..cce7dd6 100644 --- a/app/src/main/java/com/example/studentfaceregistry/ui/OverlayView.kt +++ b/app/src/main/java/com/example/studentfaceregistry/ui/OverlayView.kt @@ -20,10 +20,16 @@ class OverlayView @JvmOverloads constructor( attrs: AttributeSet? = null ) : View(context, attrs) { + // 识别框外发光画笔 + private val glowPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + style = Paint.Style.STROKE + strokeWidth = 14f + } + // 识别框画笔 private val boxPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { style = Paint.Style.STROKE - strokeWidth = 6f + strokeWidth = 5f } // 标签背景画笔 @@ -31,24 +37,31 @@ class OverlayView @JvmOverloads constructor( style = Paint.Style.FILL } + // 标签投影画笔 + private val labelShadowPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { + style = Paint.Style.FILL + color = Color.argb(70, 0, 0, 0) + } + // 标签文字画笔 private val labelPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { color = Color.WHITE - textSize = 48f - typeface = Typeface.DEFAULT_BOLD + textSize = 40f + typeface = Typeface.create("sans-serif-medium", Typeface.BOLD) } // 置信度文字画笔 private val confidencePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply { color = Color.WHITE - textSize = 32f + textSize = 30f + typeface = Typeface.create("sans-serif-medium", Typeface.NORMAL) } // 颜色定义 private val colorMatch = Color.rgb(34, 197, 94) // 绿色 - 匹配成功 - private val colorUnsure = Color.rgb(234, 179, 8) // 黄色 - 不确定 - private val colorNoMatch = Color.rgb(239, 68, 68) // 红色 - 未匹配 - private val colorUnknown = Color.rgb(59, 130, 246) // 蓝色 - 识别中 + private val colorUnsure = Color.rgb(245, 158, 11) // 橙色 - 不确定 + private val colorNoMatch = Color.rgb(239, 68, 68) // 红色 - 未匹配 + private val colorUnknown = Color.rgb(59, 130, 246) // 蓝色 - 识别中 private var detections: List = emptyList() @@ -72,43 +85,74 @@ class OverlayView @JvmOverloads constructor( val boxColor = getBoxColor(item.result) boxPaint.color = boxColor - // 绘制识别框 - canvas.drawRect(rect.left, rect.top, rect.right, rect.bottom, boxPaint) + // 外发光(半透明描边) + glowPaint.color = boxColor and 0x00FFFFFF or 0x4D000000.toInt() + canvas.drawRoundRect(rect, 14f, 14f, glowPaint) + + // 绘制识别框(圆角) + canvas.drawRoundRect(rect, 14f, 14f, boxPaint) // 绘制标签背景 val label = item.label val labelWidth = labelPaint.measureText(label) - val labelHeight = 60f - val padding = 12f + val labelHeight = 52f + val padding = 14f // 标签在框上方 - val labelLeft = rect.left + padding - val labelTop = (rect.top - labelHeight - padding).coerceAtLeast(padding) + val labelLeft = rect.left + 4f + val labelTop = (rect.top - labelHeight - 10f).coerceAtLeast(padding) val labelRight = labelLeft + labelWidth + padding * 2 val labelBottom = labelTop + labelHeight - // 标签背景颜色与框颜色一致 + // 标签投影 + canvas.drawRoundRect( + labelLeft, + labelTop + 3f, + labelRight, + labelBottom + 3f, + labelHeight / 2f, + labelHeight / 2f, + labelShadowPaint + ) + + // 标签背景颜色与框颜色一致(胶囊形) labelBackgroundPaint.color = boxColor - canvas.drawRoundRect(labelLeft, labelTop, labelRight, labelBottom, 8f, 8f, labelBackgroundPaint) + canvas.drawRoundRect( + labelLeft, + labelTop, + labelRight, + labelBottom, + labelHeight / 2f, + labelHeight / 2f, + labelBackgroundPaint + ) // 绘制标签文字 - canvas.drawText(label, labelLeft + padding, labelTop + 38f, labelPaint) + canvas.drawText(label, labelLeft + padding, labelTop + 36f, labelPaint) // 如果有置信度信息,显示在标签右侧 if (item.confidence != null) { val confidenceText = "${(item.confidence * 100).toInt()}%" val confidenceWidth = confidencePaint.measureText(confidenceText) - val confLeft = labelRight + 8f - val confTop = labelTop + 8f - val confRight = confLeft + confidenceWidth + 16f - val confBottom = confTop + 44f + val chipLeft = labelRight + 8f + val chipTop = labelTop + 6f + val chipRight = chipLeft + confidenceWidth + 22f + val chipBottom = chipTop + 40f - // 置信度背景(半透明黑色) - labelBackgroundPaint.color = Color.argb(180, 0, 0, 0) - canvas.drawRoundRect(confLeft, confTop, confRight, confBottom, 6f, 6f, labelBackgroundPaint) + // 置信度背景(深色半透明胶囊) + labelBackgroundPaint.color = Color.argb(210, 15, 23, 42) + canvas.drawRoundRect( + chipLeft, + chipTop, + chipRight, + chipBottom, + 20f, + 20f, + labelBackgroundPaint + ) // 置信度文字 - canvas.drawText(confidenceText, confLeft + 8f, confTop + 30f, confidencePaint) + canvas.drawText(confidenceText, chipLeft + 11f, chipTop + 27f, confidencePaint) } } diff --git a/app/src/main/res/drawable/bg_button_primary.xml b/app/src/main/res/drawable/bg_button_primary.xml new file mode 100644 index 0000000..02c7ccf --- /dev/null +++ b/app/src/main/res/drawable/bg_button_primary.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_button_secondary.xml b/app/src/main/res/drawable/bg_button_secondary.xml new file mode 100644 index 0000000..e0704f5 --- /dev/null +++ b/app/src/main/res/drawable/bg_button_secondary.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_camera_frame.xml b/app/src/main/res/drawable/bg_camera_frame.xml new file mode 100644 index 0000000..56eefe0 --- /dev/null +++ b/app/src/main/res/drawable/bg_camera_frame.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_card.xml b/app/src/main/res/drawable/bg_card.xml new file mode 100644 index 0000000..56eefe0 --- /dev/null +++ b/app/src/main/res/drawable/bg_card.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_card_click.xml b/app/src/main/res/drawable/bg_card_click.xml new file mode 100644 index 0000000..53d748d --- /dev/null +++ b/app/src/main/res/drawable/bg_card_click.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_chip_white.xml b/app/src/main/res/drawable/bg_chip_white.xml new file mode 100644 index 0000000..782040d --- /dev/null +++ b/app/src/main/res/drawable/bg_chip_white.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_header.xml b/app/src/main/res/drawable/bg_header.xml new file mode 100644 index 0000000..909a6a2 --- /dev/null +++ b/app/src/main/res/drawable/bg_header.xml @@ -0,0 +1,7 @@ + + + + diff --git a/app/src/main/res/drawable/bg_input.xml b/app/src/main/res/drawable/bg_input.xml new file mode 100644 index 0000000..74d03f1 --- /dev/null +++ b/app/src/main/res/drawable/bg_input.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_panel_light.xml b/app/src/main/res/drawable/bg_panel_light.xml new file mode 100644 index 0000000..ddb323c --- /dev/null +++ b/app/src/main/res/drawable/bg_panel_light.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_face_scan.xml b/app/src/main/res/drawable/ic_face_scan.xml new file mode 100644 index 0000000..51a8a63 --- /dev/null +++ b/app/src/main/res/drawable/ic_face_scan.xml @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 19daede..3b45352 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,4 +1,8 @@ - + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..ebcebf3 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,47 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_upload.xml b/app/src/main/res/drawable/ic_upload.xml new file mode 100644 index 0000000..80ea98d --- /dev/null +++ b/app/src/main/res/drawable/ic_upload.xml @@ -0,0 +1,27 @@ + + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 670bfb3..6b78462 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 670bfb3..6b78462 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..63c664d70526a35f094c03dac39e335de788ce2c GIT binary patch literal 4561 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 RqYwZ9002ovPDHLkV1gJ_c{cz6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f40c94f90d18c63431129c11263e950ef88a38d6 GIT binary patch literal 2920 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 Scvsl~0000OD+30Gdu6o)BQZpJtrT!dv=DI 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ed42e4ac11dd20ba349c3e05750b557189a67d6f GIT binary patch literal 6243 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7e4a97097110fa16abdebe2b9e75dcf1450400 GIT binary patch literal 9306 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..391d5fd7f369eb589583716611847190533413e0 GIT binary patch literal 12092 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f66b27e..d5993f5 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,7 +2,11 @@