Browse Source

调音器增加一个进度显示

Pq 2 years ago
parent
commit
657eda6e34

+ 1 - 0
BaseLibrary/src/main/res/values/colors.xml

@@ -156,6 +156,7 @@
     <color name="color_00ffcf">#00FFCF</color>
     <color name="color_f1f1f1">#F1F1F1</color>
     <color name="color_979797">#979797</color>
+    <color name="color_2d3648">#2D3648</color>
 
     <color name="color_25292e">#25292E</color>
     <color name="color_F8F8F8">#F8F8F8</color>

+ 15 - 4
musictuner/src/main/java/com/cooleshow/musictuner/MusicTunerActivity.java

@@ -111,13 +111,16 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
             }
             viewBinding.tvResult.setText(getResultText(voiceToneBean));
 
+
             viewBinding.tvBeforeResultVoiceTones.setText(voiceToneBean.beforeName);
             viewBinding.tvAfter.setText(voiceToneBean.afterName);
-            long differenceText = getDifferenceText(voiceToneBean.difference);
-            boolean isCorrect = checkIsCorrect(differenceText);
+            long differenceValue = getDifferenceText(voiceToneBean.difference);
+            boolean isCorrect = checkIsCorrect(differenceValue);
             viewBinding.ivCorrect.setVisibility(isCorrect ? View.VISIBLE : View.GONE);
-            viewBinding.tvDifference.setText(differenceText != -1 ? String.format("%d¢", differenceText) : "");
-            viewBinding.viewDashBoard.setProgress((int) differenceText);
+            viewBinding.progress.setProgress(getDiffProgress((int) differenceValue));
+
+            viewBinding.tvDifference.setText(differenceValue != -1 ? String.format("%d¢", differenceValue) : "");
+            viewBinding.viewDashBoard.setProgress((int) differenceValue);
         }
     }
 
@@ -134,6 +137,14 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
         return false;
     }
 
+    private int getDiffProgress(int value) {
+        int abs = Math.abs(value);
+        if (abs > 50) {
+            abs = 50;
+        }
+        return 50 - abs;
+    }
+
     private String getResultText(VoiceToneBean voiceToneBean) {
         if (voiceToneBean != null) {
             int value = (int) voiceToneBean.voiceFrequencyValue;

BIN
musictuner/src/main/res/drawable-xxxhdpi/bg_dash_board.png


+ 12 - 0
musictuner/src/main/res/drawable/progress_bar_00ffcf_3dp.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- solid指定形状的填充色,只有android:color一个属性 -->
+    <solid android:color="@color/color_00ffcf" />
+    <!-- padding设置内容区域离边界的间距 -->
+    <!-- corners设置圆角,只适用于rectangle -->
+    <corners
+        android:bottomLeftRadius="3dp"
+        android:topLeftRadius="3dp"
+        android:bottomRightRadius="3dp"
+        android:topRightRadius="3dp"/>
+</shape>

+ 24 - 0
musictuner/src/main/res/drawable/shape_tuner_diff_progress_drawable.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background">
+        <shape>
+            <corners android:radius="3dip" />
+            <solid android:color="@color/color_2d3648"/>
+
+        </shape>
+    </item>
+    <item android:id="@android:id/progress">
+<!--        <clip>-->
+<!--            <shape>-->
+<!--                <corners android:radius="4dip" />-->
+<!--                <solid android:color="@color/color_4877ff"/>-->
+<!--            </shape>-->
+<!--        </clip>-->
+
+        <!--
+   -->
+        <scale android:scaleWidth="100%"
+            android:drawable="@drawable/progress_bar_00ffcf_3dp"/>
+    </item>
+</layer-list>

+ 14 - 0
musictuner/src/main/res/layout/activity_music_tuner_layout.xml

@@ -201,6 +201,20 @@
         android:src="@drawable/bg_music_tuner_bottom"
         app:layout_constraintTop_toBottomOf="@+id/iv_hz_reduce" />
 
+    <ProgressBar
+        android:id="@+id/progress"
+        style="@style/Widget.AppCompat.ProgressBar.Horizontal"
+        android:layout_width="0dp"
+        android:layout_height="8dp"
+        android:layout_marginBottom="26dp"
+        android:layout_marginStart="26dp"
+        android:layout_marginEnd="26dp"
+        android:max="50"
+        android:progress="48"
+        app:layout_constraintBottom_toBottomOf="@+id/iv_bottom_bg"
+        app:layout_constraintRight_toRightOf="@+id/iv_bottom_bg"
+        app:layout_constraintLeft_toLeftOf="@+id/iv_bottom_bg"
+        android:progressDrawable="@drawable/shape_tuner_diff_progress_drawable" />
 
     <TextView
         android:id="@+id/tv_result_voice_tones"