修复了柱状图显示问题,修复了菜品图片显示问题,处理了人脸采集框变形问题

This commit is contained in:
zxj
2025-08-11 15:38:06 +08:00
parent 4086f9c0b7
commit fc326a8f42
8 changed files with 61 additions and 26 deletions
@@ -93,14 +93,13 @@ class SecondaryScreenPresentation(
window?.setBackgroundDrawableResource(android.R.color.transparent)
initView()
setupArcCamera()
// binding.includeUserHeat.ivHeat.showText("1070千卡")
registerDataChange()
}
private fun registerDataChange() {
activity.lifecycleScope.launch {
viewModel.loadFaceResult.collect { needUpdate ->
if (needUpdate){
if (needUpdate) {
recognizeViewModel.refreshFaceList()
}
}
@@ -286,7 +285,9 @@ class SecondaryScreenPresentation(
mealPickupMode = mode
}
private fun calculateNutrition(weight: Double) {
private fun calculateNutrition(weight1: Double) {
var weight = weight1
if (weight < 0) weight = 0.0
debouncer.debounce {
Timber.d("calculateNutrition weight = $weight, recognitionWeight = $recognitionWeight")
val dinnerType = dinnerTypeInfo!!.dinnerType!!.dinnerType!!
@@ -312,43 +313,76 @@ class SecondaryScreenPresentation(
)
var maxKcal = totalKcal.max
Timber.d("maxKcal = $maxKcal")
// 避免0作为被除数
if (maxKcal <= 0.0) {
maxKcal = 100.0
maxKcal = 1.0
}
Timber.d("maxKcal 1 = $maxKcal")
itemUserNutritionBinding.totalKcalTv.text = totalKcal.current.format2String()
var totalKcalHeight = (totalKcal.current / maxKcal).toFloat()
if (totalKcalHeight == 0F) {
itemUserNutritionBinding.divKcalView.visibility = View.VISIBLE
} else {
itemUserNutritionBinding.divKcalView.visibility = View.GONE
totalKcalHeight += 0.1F
}
itemUserNutritionBinding.customKcalColumn.setCustomHeightPercent(
(totalKcal.current / maxKcal).toFloat(),
totalKcalHeight,
true
)
// 设置主食
itemUserNutritionBinding.customFoodColumn.setImageDrawable(
false,
grain.max < grain.current
)
itemUserNutritionBinding.totalFoodTv.text = grain.current.format2String()
var grainHeight = (grain.current / columnMax).toFloat()
if (grainHeight == 0F) {
itemUserNutritionBinding.divTotalFoodView.visibility = View.VISIBLE
} else {
itemUserNutritionBinding.divTotalFoodView.visibility = View.GONE
grainHeight += 0.1F
}
itemUserNutritionBinding.customFoodColumn.setCustomHeightPercent(
(grain.current / columnMax).toFloat(),
grainHeight,
true
)
// 设置果蔬
itemUserNutritionBinding.customVegetableColumn.setImageDrawable(
false,
fruits.max < fruits.current
)
itemUserNutritionBinding.totalVegetableTv.text = fruits.current.format2String()
var fruitsHeight = (fruits.current / columnMax).toFloat()
if (fruitsHeight == 0F) {
itemUserNutritionBinding.divVegetableView.visibility = View.VISIBLE
} else {
itemUserNutritionBinding.divVegetableView.visibility = View.GONE
fruitsHeight += 0.1F
}
itemUserNutritionBinding.customVegetableColumn.setCustomHeightPercent(
(fruits.current / columnMax).toFloat(),
fruitsHeight,
true
)
// 设置肉蛋
itemUserNutritionBinding.customMeatColumn.setImageDrawable(
false,
meat.max < meat.current
)
itemUserNutritionBinding.totalMeatTv.text = meat.current.format2String()
var meatHeight = (meat.current / columnMax).toFloat()
if (meatHeight == 0F) {
itemUserNutritionBinding.divMeatView.visibility = View.VISIBLE
} else {
itemUserNutritionBinding.divMeatView.visibility = View.GONE
meatHeight += 0.1F
}
itemUserNutritionBinding.customMeatColumn.setCustomHeightPercent(
(meat.current / columnMax).toFloat(),
meatHeight,
true
)
}
@@ -542,7 +576,7 @@ class SecondaryScreenPresentation(
val layoutParams = adjustPreviewViewSize(
binding.dualCameraTexturePreviewRgb,
binding.dualCameraTexturePreviewRgb, binding.dualCameraFaceRectView,
previewSizeRgb, displayOrientation, 1f
previewSizeRgb, displayOrientation, 0.6F
)
Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}")
Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}")
@@ -9,6 +9,7 @@ import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
@@ -107,9 +108,8 @@ public class CustomImageView extends androidx.appcompat.widget.AppCompatImageVie
// 用于设置自定义高度的方法
public void setCustomHeight(int height, boolean isAnimation) {
Timber.d("setCustomHeight height = %s", height);
if (height > 0) {
height += 30;
}
setVisibility(height == 0 ? View.GONE : VISIBLE);
if (height > MAX_HEIGHT){
height = MAX_HEIGHT;
}