Browse Source

添加调音器差值正确的提示

Pq 2 năm trước cách đây
mục cha
commit
6b6c8e331f

+ 16 - 0
musictuner/src/main/java/com/cooleshow/musictuner/MusicTunerActivity.java

@@ -21,6 +21,7 @@ import android.view.View;
 import com.cooleshow.base.ui.activity.BaseActivity;
 import com.cooleshow.base.utils.SizeUtils;
 import com.cooleshow.musictuner.bean.VoiceToneBean;
+import com.cooleshow.musictuner.constants.MusicTunerConstants;
 import com.cooleshow.musictuner.databinding.ActivityMusicTunerLayoutBinding;
 import com.cooleshow.musictuner.utils.AudioTrackManager;
 import com.cooleshow.musictuner.utils.MusicTunerHelper;
@@ -113,11 +114,26 @@ public class MusicTunerActivity extends BaseActivity<ActivityMusicTunerLayoutBin
             viewBinding.tvBeforeResultVoiceTones.setText(voiceToneBean.beforeName);
             viewBinding.tvAfter.setText(voiceToneBean.afterName);
             long differenceText = getDifferenceText(voiceToneBean.difference);
+            boolean isCorrect = checkIsCorrect(differenceText);
+            viewBinding.ivCorrect.setVisibility(isCorrect ? View.VISIBLE : View.GONE);
             viewBinding.tvDifference.setText(differenceText != -1 ? String.format("%d¢", differenceText) : "");
             viewBinding.viewDashBoard.setProgress((int) differenceText);
         }
     }
 
+    /**
+     * 差值比对是否正确
+     *
+     * @param value
+     * @return
+     */
+    private boolean checkIsCorrect(long value) {
+        if (Math.abs(value) <= MusicTunerConstants.CORRECT_VALUE_RANGE) {
+            return true;
+        }
+        return false;
+    }
+
     private String getResultText(VoiceToneBean voiceToneBean) {
         if (voiceToneBean != null) {
             int value = (int) voiceToneBean.voiceFrequencyValue;

+ 3 - 1
musictuner/src/main/java/com/cooleshow/musictuner/constants/MusicTunerConstants.java

@@ -9,11 +9,13 @@ public class MusicTunerConstants {
             "单簧管:降B大调", "双簧管:C大调", "竖笛:C调大调",
             "小号:降B大调", "长号:C大调", "圆号:F大调",
             "大号:降B大调", "上低音号:C大调", "上低音号:降B大调"};
-    public final static int[] TRANSPOSING_VALUES = new int[]{0, 0, -2, -9, -2, 0, -12, -2, 0, -7, -2, 0, -2};
+    public final static int[] TRANSPOSING_VALUES = new int[]{0, 0, -10, -3, -10, 0, -12, -10, 0, -5, -10, 0, -10};
     //private let flats = ["C", "D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"]
     public final static String[] TRANSPOSING_TITLE_TAG = new String[]{"C",
             "C", "B♭", "E♭",
             "B♭", "C", "C",
             "B♭", "C", "F",
             "B♭", "C", "B♭"};
+
+    public final static int CORRECT_VALUE_RANGE =3;//音频值差值正确值范围
 }

+ 2 - 1
musictuner/src/main/java/com/cooleshow/musictuner/utils/VoiceDataUtils.java

@@ -11,7 +11,8 @@ import java.util.ArrayList;
  */
 public class VoiceDataUtils {
     public static volatile VoiceDataUtils instance;
-    public static final String[] VOICE_OF_TONE = new String[]{"C", "C♯", "D", "D♯", "E", "F", "F♯", "G", "G♯", "A", "A♯", "B"};
+    public static final String[] VOICE_OF_TONE = new String[]{"C", "D♭", "D", "E♭", "E", "F", "G♭", "G", "A♭", "A", "B♭", "B"};
+    //    public static final String[] VOICE_OF_TONE = new String[]{"C", "C♯", "D", "D♯", "E", "F", "F♯", "G", "G♯", "A", "A♯", "B"};
     public static final double[] ALL_VOICE_SAMPLES = new double[]{16.35, 17.32, 18.35, 19.45, 20.60, 21.83, 23.12, 24.50, 25.96, 27.50, 29.14, 30.87,
             32.70, 34.65, 36.71, 38.89, 41.20, 43.65, 46.25, 49.00, 51.91, 55.00, 58.27, 61.74,
             65.41, 69.30, 73.42, 77.78, 82.41, 87.31, 92.50, 98.00, 103.8, 110.0, 116.5, 123.5,

BIN
musictuner/src/main/res/drawable-xhdpi/icon_music_tuner_correct_tag.png


BIN
musictuner/src/main/res/drawable-xxhdpi/icon_music_tuner_correct_tag.png


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

@@ -75,6 +75,17 @@
         app:layout_constraintRight_toRightOf="@+id/helper_view1"
         app:layout_constraintTop_toTopOf="@+id/helper_view1" />
 
+    <ImageView
+        android:visibility="gone"
+        android:id="@+id/iv_correct"
+        android:layout_marginBottom="10dp"
+        app:layout_constraintBottom_toTopOf="@+id/view_ball"
+        app:layout_constraintRight_toRightOf="@+id/view_ball"
+        app:layout_constraintLeft_toLeftOf="@+id/view_ball"
+        android:src="@drawable/icon_music_tuner_correct_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"/>
+
     <TextView
         android:id="@+id/tv_difference"
         android:layout_width="wrap_content"