Browse Source

优化节拍器加减进度的逻辑

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

+ 10 - 9
metronome/src/main/java/com/cooleshow/metronome/MetronomeActivity.java

@@ -208,11 +208,12 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
                     lastProgress = newProgress;
                     return;
                 }
+                lastProgress = newProgress;
                 int result = difference / MetronomeConfig.PLAY_RATE_UNIT;
-                if (difference < -1) {
+                if (difference <= -1) {
                     result = -1;
                 }
-                if (difference > 1) {
+                if (difference >= 1) {
                     result = 1;
                 }
                 if (result == 0) {
@@ -230,7 +231,6 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
                 if (currentBeatRate > MetronomeConfig.MAX_PLAY_RATE) {
                     currentBeatRate = MetronomeConfig.MAX_PLAY_RATE;
                 }
-                lastProgress = newProgress;
                 updateSpeedText();
             }
         });
@@ -332,13 +332,14 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
 
     private void updateAnim(int value) {
         int progress = viewBinding.cirSeekbar.getProgress();
+        Log.i("qwer","当前progress:"+progress);
         progress += value;
-//        if (progress > MetronomeConfig.MAX_RATE_PROGRESS) {
-//            progress = MetronomeConfig.MAX_RATE_PROGRESS;
-//        }
-//        if (progress < 0) {
-//            progress = 0;
-//        }
+        if (progress >= MetronomeConfig.MAX_RATE_PROGRESS) {
+            progress = 0;
+        }
+        if (progress < 0) {
+            progress = MetronomeConfig.MAX_RATE_PROGRESS+value;
+        }
         viewBinding.cirSeekbar.setProgress(progress);
     }
 }

+ 3 - 0
metronome/src/main/java/com/cooleshow/metronome/widget/CircularSeekBar.java

@@ -497,11 +497,14 @@ public class CircularSeekBar extends View {
      *            the new progress
      */
     public void setProgress(int progress) {
+        Log.i("qwer","setProgress:"+progress);
         if (this.progress != progress) {
             this.progress = progress;
             if (!CALLED_FROM_ANGLE) {
                 int newPercent = (this.progress * 100) / this.maxProgress;
                 int newAngle = (newPercent * 360) / 100 ;
+                Log.i("qwer","set newPercent:"+newPercent);
+                Log.i("qwer","set newAngle:"+newAngle);
                 this.setAngle(newAngle);
                 this.setProgressPercent(newPercent);
                 invalidate();