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 e24f8cf..f05f518 100644 --- a/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt +++ b/app/src/main/java/com/sw/dualscreen/presentation/SecondaryScreenPresentation.kt @@ -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}") diff --git a/app/src/main/java/com/sw/dualscreen/view/CustomImageView.java b/app/src/main/java/com/sw/dualscreen/view/CustomImageView.java index c0eb760..118d34a 100644 --- a/app/src/main/java/com/sw/dualscreen/view/CustomImageView.java +++ b/app/src/main/java/com/sw/dualscreen/view/CustomImageView.java @@ -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; } diff --git a/app/src/main/res/drawable/bg_face.png b/app/src/main/res/drawable/bg_face.png index 1fe7afb..85ba84b 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/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 86d8eaf..61df63f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -60,6 +60,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="食物图预览" + android:scaleType="centerCrop" android:visibility="gone" /> @@ -128,7 +128,7 @@ @@ -181,7 +181,7 @@ @@ -234,7 +234,7 @@ diff --git a/app/src/main/res/layout/presentation_secondary_screen.xml b/app/src/main/res/layout/presentation_secondary_screen.xml index aad5750..874049c 100644 --- a/app/src/main/res/layout/presentation_secondary_screen.xml +++ b/app/src/main/res/layout/presentation_secondary_screen.xml @@ -5,8 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/bg" - android:gravity="center_horizontal" - android:orientation="vertical" + android:visibility="visible" tools:context=".activity.MainActivity"> @@ -47,18 +46,18 @@ + + android:visibility="visible" /> @@ -107,6 +106,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="img" + android:scaleType="centerCrop" android:visibility="visible" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4c21904..b37dd84 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -3,7 +3,7 @@ 1000dp 11sp 20sp - 16dp + 30dp 80dp 87dp 107dp diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 5f1081a..555b080 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -79,7 +79,7 @@ wrap_content true bottom - + 20dp horizontal