优化人脸识别区域

This commit is contained in:
2026-02-10 09:48:26 +08:00
parent 23546a967b
commit ac30d95812
6 changed files with 135 additions and 66 deletions
@@ -3,6 +3,7 @@ package com.sw.dualscreen.view
import android.content.Context
import android.graphics.*
import android.util.AttributeSet
import android.util.Log
import android.view.View
import androidx.core.content.ContextCompat
import androidx.core.graphics.toColorInt
@@ -38,7 +39,10 @@ class HollowCircleRectView @JvmOverloads constructor(
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
// 强制View尺寸为精准px值,避免父布局干扰
setMeasuredDimension(rectWidthPx.toInt(), rectHeightPx.toInt())
val rectWidthPxInt = rectWidthPx.toInt()
val rectHeightPxInt = rectHeightPx.toInt()
Log.d("HollowCircleRectView", "onMeasure: $rectWidthPxInt,$rectHeightPxInt")
setMeasuredDimension(rectWidthPxInt, rectHeightPxInt)
}
override fun onDraw(canvas: Canvas) {
@@ -52,6 +56,7 @@ class HollowCircleRectView @JvmOverloads constructor(
val circleX = rectWidthPx / 2 // 水平居中:200dp转px
val circleY = rectHeightPx / 2 // 垂直居中:340dp转px
// 核心修复:用固定半径circleRadiusPx,而非直径/2(避免浮点运算偏差)
Log.d("HollowCircleRectView", "onDraw: $circleX,$circleY,$circleRadiusPx")
path.addCircle(circleX, circleY, circleRadiusPx, Path.Direction.CW)
// 3. 填充规则+绘制