From ea4cd36ffb0aa645d73d770afa879d4cb0cfa013 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Mon, 24 Nov 2025 16:49:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../benefit/widget/BenefitTaskItemView.kt | 5 ++++ .../architecture/widget/CustomProgressBar.kt | 29 +++++++++++++------ .../src/main/res/values/colors.xml | 2 ++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt index b882ffb..345db02 100644 --- a/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/features/benefit/widget/BenefitTaskItemView.kt @@ -28,6 +28,11 @@ class BenefitTaskItemView @JvmOverloads constructor( } } } + + with(mBinding.progressBar) { + setMax(100) + setProgress(0) + } } fun setActionFun(action: ()->Unit) { diff --git a/core/architecture/src/main/java/com/ama/core/architecture/widget/CustomProgressBar.kt b/core/architecture/src/main/java/com/ama/core/architecture/widget/CustomProgressBar.kt index a78aa57..612bfff 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/widget/CustomProgressBar.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/widget/CustomProgressBar.kt @@ -2,18 +2,20 @@ package com.ama.core.architecture.widget import android.content.Context import android.graphics.Canvas -import android.graphics.Color import android.graphics.Paint import android.util.AttributeSet import android.view.View +import androidx.core.graphics.withSave +import com.ama.core.architecture.R +import com.ama.core.architecture.util.ResUtil class CustomProgressBar(context: Context, attrs: AttributeSet) : View(context, attrs) { private var progress = 0 private var max = 100 - private val grayColor = Color.parseColor("#1affffff") - private val greenColor = Color.parseColor("#ff00ff09") + private var mBgColor = ResUtil.getColor(R.color.gray_d3) + private var mForColor = ResUtil.getColor(R.color.green_09) @@ -26,13 +28,16 @@ class CustomProgressBar(context: Context, attrs: AttributeSet) : View(context, a val width = measuredWidth.toFloat() val height = measuredHeight.toFloat() - paint.color = grayColor - canvas.drawRoundRect(0f, 0f, width, height, width/2, 0F, paint) - val progressWidth = (width) * progress / max - if (progressWidth > 0) { - paint.color = greenColor - canvas.drawRoundRect(0f, 0f, progressWidth, height, width/2, 0F, paint) + + canvas.withSave { + paint.color = mBgColor + canvas.drawRoundRect(0f, 0f, width, height, height/2, height/2, paint) + val completeProgressWidth = (width) * progress / max + if (completeProgressWidth > 0) { + paint.color = mForColor + canvas.drawRoundRect(0f, 0f, completeProgressWidth, height, height/2, height/2, paint) + } } } @@ -46,4 +51,10 @@ class CustomProgressBar(context: Context, attrs: AttributeSet) : View(context, a this.max = max invalidate() } + + fun setBarColor(bgColor: Int=R.color.gray_d3, forColor: Int=R.color.green_09) { + mBgColor = ResUtil.getColor(bgColor) + mForColor = ResUtil.getColor(forColor) + invalidate() + } } \ No newline at end of file diff --git a/core/architecture/src/main/res/values/colors.xml b/core/architecture/src/main/res/values/colors.xml index d56c2cf..3a86657 100644 --- a/core/architecture/src/main/res/values/colors.xml +++ b/core/architecture/src/main/res/values/colors.xml @@ -53,6 +53,8 @@ #FFFFFF #333333 #999999 + #FFE2D9D3 + #ff00ff09 \ No newline at end of file