diff --git a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java index b73e2d2..76475a6 100644 --- a/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java +++ b/app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java @@ -1,5 +1,6 @@ package qianmu.container.activity.H5; +import android.animation.Animator; import android.annotation.SuppressLint; import android.app.ActivityManager; import android.content.Context; @@ -255,12 +256,7 @@ public class WebViewActivity extends BaseActivity { return true; // 返回true表示已处理,不会弹出系统默认提示 } }); - binding.toVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { - @Override - public void onCompletion(MediaPlayer mp) { - changeVideo("bg"); - } - }); + binding.toVideo.setOnCompletionListener( mp -> changeVideo("bg")); } //小红帽回 back private void loadingBackVideo(){ @@ -278,12 +274,7 @@ public class WebViewActivity extends BaseActivity { return true; // 返回true表示已处理,不会弹出系统默认提示 } }); - binding.backVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { - @Override - public void onCompletion(MediaPlayer mp) { - changeVideo("bg"); - } - }); + binding.backVideo.setOnCompletionListener( mp -> changeVideo("bg")); } //彩蛋背景视频 private void loadingbgVideo1(){ @@ -353,7 +344,6 @@ public class WebViewActivity extends BaseActivity { public void changeVideo(String type){ LoggerUtil.e("changeVideo", type); VideoView nextVideo; - currentVideo.clearAnimation(); switch(type.trim()){ case "back" : if(currentVideo == binding.backVideo){ @@ -398,35 +388,50 @@ public class WebViewActivity extends BaseActivity { nextVideo = "".equals(videoAfter) ? binding.bgVideo : binding.bgVideo1; } - // 新视频淡入动画 - AlphaAnimation fadeIn = new AlphaAnimation(0.3f, 1f); - fadeIn.setDuration(300); - fadeIn.setFillAfter(true); - // 旧视频淡出动画 - AlphaAnimation fadeOut = new AlphaAnimation(1f, 0.5f); - fadeOut.setDuration(150); - fadeOut.setFillAfter(true); - fadeOut.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} + // 旧视频淡出 + currentVideo.animate() + .alpha(0.5f) + .setDuration(300) + .setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + currentVideo.pause(); + } + @Override + public void onAnimationEnd(Animator animation) { + currentVideo.setVisibility(View.GONE); + currentVideo.setAlpha(1f); // 恢复初始状态,以备下次使用 + } + @Override + public void onAnimationCancel(Animator animation) {} - @Override - public void onAnimationEnd(Animation animation) { - currentVideo.setVisibility(View.GONE); - currentVideo.clearAnimation(); - currentVideo = nextVideo; - if (!currentVideo.isPlaying()) { - currentVideo.start(); - } - } - @Override - public void onAnimationRepeat(Animation animation) {} - }); - // 执行切换 - currentVideo.pause(); + @Override + public void onAnimationRepeat(Animator animation) {} + }); + + // 新视频淡入 + nextVideo.setAlpha(0.3f); // 先设置为完全透明 nextVideo.setVisibility(View.VISIBLE); - nextVideo.startAnimation(fadeIn); - currentVideo.startAnimation(fadeOut); + nextVideo.animate() + .alpha(1f) + .setDuration(500) + .setListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + if (!nextVideo.isPlaying()) { + nextVideo.start(); + } + } + @Override + public void onAnimationEnd(Animator animation) { + currentVideo = nextVideo; + currentVideo.start(); + } + @Override + public void onAnimationCancel(Animator animation) {} + @Override + public void onAnimationRepeat(Animator animation) {} + }); } @Override @@ -662,7 +667,7 @@ public class WebViewActivity extends BaseActivity { @JavascriptInterface public void stopTTS() { LoggerUtil.e(TAG,"JS调用了Android的方法:stopTTS()"); - ttsUtil.stopTTs(); + ttsUtil.stopTTs(); runOnUiThread(new Runnable() { @Override public void run() { diff --git a/app/src/main/res/raw/bg1.mp4 b/app/src/main/res/raw/bg1.mp4 index 6166711..e422fc8 100644 Binary files a/app/src/main/res/raw/bg1.mp4 and b/app/src/main/res/raw/bg1.mp4 differ diff --git a/app/src/main/res/raw/hatback.mp4 b/app/src/main/res/raw/hatback.mp4 index 3862e78..1a9314d 100644 Binary files a/app/src/main/res/raw/hatback.mp4 and b/app/src/main/res/raw/hatback.mp4 differ diff --git a/app/src/main/res/raw/hatto.mp4 b/app/src/main/res/raw/hatto.mp4 index 32004a2..6fca142 100644 Binary files a/app/src/main/res/raw/hatto.mp4 and b/app/src/main/res/raw/hatto.mp4 differ diff --git a/app/src/main/res/raw/hello1.mp4 b/app/src/main/res/raw/hello1.mp4 index 8c6804a..15de1c8 100644 Binary files a/app/src/main/res/raw/hello1.mp4 and b/app/src/main/res/raw/hello1.mp4 differ diff --git a/app/src/main/res/raw/speek1.mp4 b/app/src/main/res/raw/speek1.mp4 index 1e932ab..f442d1b 100644 Binary files a/app/src/main/res/raw/speek1.mp4 and b/app/src/main/res/raw/speek1.mp4 differ