Browse Source

Merge branch 'czq'

czq 2 years ago
parent
commit
bb60786b3e

+ 19 - 23
app/src/main/java/com/xunao/effectdemo/activity/NewSongLyricActivity.java

@@ -96,7 +96,7 @@ public class NewSongLyricActivity extends Activity {
 		});
 		stop.setOnClickListener(v->{
 			mediaPlayer.pause();
-//			textView.stopPlay();
+			textView.stopPlay();
 			handler.removeCallbacks(runnable);
 		});
 		mediaPlayer = new MediaPlayer();
@@ -176,21 +176,24 @@ public class NewSongLyricActivity extends Activity {
 						if (num==beanList.size()){
 							num = 0;
 						}
-						if (timeBean.getTime()+timeBean.getStartTime()+canTime == timeBean.getEndTime()){
-							canTime =0;
-//							normal = startIndex;
-//							textView.startNormalLine(
-//									0,
-//									startIndex);
-						}else{
-							canTime +=timeBean.getTime();
-						}
-
 						textView.startPlayLine(
 								startIndex,
 								startIndex + timeBean.getWord().length(), // 因为有个换行符,所以 + 1
 								1);
 						startIndex += timeBean.getWord().length();
+
+						if (timeBean.getTime()+timeBean.getStartTime()+canTime == timeBean.getEndTime()){
+							canTime =0;
+							normal = startIndex;
+
+						}else{
+							if (canTime==0){
+//								textView.startNormalLine(
+//										0,
+//										startIndex);
+							}
+							canTime +=timeBean.getTime();
+						}
 						timeBean = beanList.get(num);
 					}
 					break;
@@ -211,18 +214,11 @@ public class NewSongLyricActivity extends Activity {
 	private Runnable runnable = new Runnable() {
 		@Override
 		public void run() {
-			timer=new Timer();
-			timer.schedule(new TimerTask() {
-				@Override
-				public void run() {
-					//定义一个消息传过去
-					Message msg=new Message();
-					msg.what=1001;
-					handler.sendMessage(msg);
-					time+=50;
-				}
-			},0,50); //延时0毫秒开始计时,每隔1秒计时一
-			//次
+			Message msg=new Message();
+			msg.what=1001;
+			handler.sendMessage(msg);
+			time+=50;
+			handler.postDelayed(runnable,50);
 		}
 	};
 

+ 9 - 9
app/src/main/java/com/xunao/effectdemo/view/SongLyricTextView.kt

@@ -120,14 +120,14 @@ class SongLyricTextView @JvmOverloads constructor(
 
                 if (lineWidth <= consumeWidth) {
                     // 如果是之前已经变色区域,直接添加到path中
-//                    consumeWidth -= lineWidth
-//                    path.addRect(
-//                        layout.getLineLeft(i),
-//                        layout.getLineTop(i).toFloat(),
-//                        layout.getLineRight(i),
-//                        layout.getLineBottom(i).toFloat(),
-//                        Path.Direction.CCW
-//                    )
+                    consumeWidth -= lineWidth
+                    path.addRect(
+                        layout.getLineLeft(i),
+                        layout.getLineTop(i).toFloat(),
+                        layout.getLineRight(i),
+                        layout.getLineBottom(i).toFloat(),
+                        Path.Direction.CCW
+                    )
                 } else {
                     // 如果该行正好是要变色的行,直接改变颜色
                     // 把需要的consumeWidth放入path中
@@ -190,7 +190,7 @@ class SongLyricTextView @JvmOverloads constructor(
         isPlaying = false
         isNormal = false
         animator.cancel()
-        invalidate()
+//        invalidate()
     }
 
 }