From 5c640fc4c0b3dad7b1a513b841939883c6a9f675 Mon Sep 17 00:00:00 2001 From: wushaocheng <15876365887@163.com> Date: Wed, 11 Jan 2023 22:21:21 +0800 Subject: [PATCH] =?UTF-8?q?[Modify]=E5=A3=B0=E9=9F=B3=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erban/audio/SoundSignatureActivity.kt | 2 + .../erban/audio/helper/AudioPlayerHelper.java | 2 - .../erban/audio/widget/RoundProgressView.java | 165 ++++++++++++++++++ .../res/layout/activity_sound_signature.xml | 14 ++ app/src/main/res/values/attrs.xml | 8 + 5 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/yizhuan/erban/audio/widget/RoundProgressView.java diff --git a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt index d609e8067..c094dc406 100644 --- a/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt +++ b/app/src/main/java/com/yizhuan/erban/audio/SoundSignatureActivity.kt @@ -345,6 +345,7 @@ class SoundSignatureActivity : BaseViewBindingActivity= MAX_RECORD_VOICE_DURATION) { soundViewModel.stopRecord() // 录制时长超过上限时,停止录制 } @@ -381,6 +382,7 @@ class SoundSignatureActivity : BaseViewBindingActivity 0 ) { + + oval.left = (mXCenter - mRingRadius); + oval.top = (mYCenter - mRingRadius); + oval.right = mRingRadius * 2 + (mXCenter - mRingRadius); + oval.bottom = mRingRadius * 2 + (mYCenter - mRingRadius); + if (sweepGradient==null) { + int[] arcColors= new int[]{Color.parseColor("#CC67FF"), + Color.parseColor("#9DB4FF"), + Color.parseColor("#13E2F5"), + Color.parseColor("#CC67FF")}; + float[] arcPostion=new float[]{0.0f,0.25f,0.75f,1f}; + //sweepGradient = new SweepGradient(mXCenter, mYCenter, mRingColor,Color.parseColor("#b05e39")); + sweepGradient = new SweepGradient(mXCenter, mYCenter, arcColors,arcPostion); + + Matrix matrix = new Matrix(); + matrix.setRotate(-90,mXCenter,mYCenter); + sweepGradient.setLocalMatrix(matrix); + mRingPaint.setShader(sweepGradient); + } + canvas.drawArc(oval, -90, ((float)mProgress / mTotalProgress) * 360, false, mRingPaint); // + + //字体 + String txt = mProgress + "%"; + mTxtWidth = mTextPaint.measureText(txt, 0, txt.length()); + canvas.drawText(txt, mXCenter - mTxtWidth / 2, mYCenter + mTxtHeight / 4, mTextPaint); + } + } + public void setText(String string){ + + } + + //设置进度 + public void setProgress(int progress) { + mProgress = progress; + postInvalidate();//重绘 + } +} diff --git a/app/src/main/res/layout/activity_sound_signature.xml b/app/src/main/res/layout/activity_sound_signature.xml index 6eed461dc..a91eb5efc 100644 --- a/app/src/main/res/layout/activity_sound_signature.xml +++ b/app/src/main/res/layout/activity_sound_signature.xml @@ -96,6 +96,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/title_bar" /> + + + + + + + + + +