From 798fffe295ed55f801cb67243c777d31a8993a69 Mon Sep 17 00:00:00 2001 From: MiMo Date: Fri, 10 Jul 2026 20:23:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=B1=8F=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=A7=A6=E6=91=B8=E7=AB=8B=E5=8D=B3=E7=BB=88?= =?UTF-8?q?=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 开屏展现期间任意触摸可立即终止动画,进入主窗口。 - 添加OnTouchListener监听触摸事件 - 抽取dismissSplash()统一处理定时到期和触摸终止 - 清除Handler回调和所有子视图动画防止内存泄漏 - 防止重复调用dismissSplash()导致异常 --- bytheway/build.properties | 4 +- .../winboll/studio/bytheway/MainActivity.java | 37 +++++++++++-------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/bytheway/build.properties b/bytheway/build.properties index d322112..e4012cc 100644 --- a/bytheway/build.properties +++ b/bytheway/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Jul 10 20:15:30 CST 2026 +#Fri Jul 10 20:21:17 CST 2026 stageCount=4 libraryProject= baseVersion=15.20 publishVersion=15.20.3 -buildCount=3 +buildCount=5 baseBetaVersion=15.20.4 diff --git a/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java b/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java index 46d166d..314af71 100644 --- a/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java @@ -99,6 +99,14 @@ public class MainActivity extends BaseWinBoLLActivity { final TextView splashTitle = findViewById(R.id.splash_title); final TextView splashSubtitle = findViewById(R.id.splash_subtitle); + splashOverlay.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View v, android.view.MotionEvent event) { + dismissSplash(); + return true; + } + }); + AlphaAnimation fadeInTitle = new AlphaAnimation(0f, 1f); fadeInTitle.setDuration(SPLASH_FADE_IN); fadeInTitle.setFillAfter(true); @@ -113,23 +121,20 @@ public class MainActivity extends BaseWinBoLLActivity { splashHandler.postDelayed(new Runnable() { @Override public void run() { - AlphaAnimation fadeOut = new AlphaAnimation(1f, 0f); - fadeOut.setDuration(SPLASH_FADE_OUT); - fadeOut.setFillAfter(true); - fadeOut.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - splashOverlay.setVisibility(View.GONE); - } - - @Override - public void onAnimationRepeat(Animation animation) {} - }); - splashOverlay.startAnimation(fadeOut); + dismissSplash(); } }, SPLASH_DURATION); } + + private void dismissSplash() { + splashHandler.removeCallbacksAndMessages(null); + if (splashOverlay == null || splashOverlay.getVisibility() != View.VISIBLE) { + return; + } + splashOverlay.clearAnimation(); + for (int i = 0; i < ((android.view.ViewGroup) splashOverlay).getChildCount(); i++) { + ((android.view.ViewGroup) splashOverlay).getChildAt(i).clearAnimation(); + } + splashOverlay.setVisibility(View.GONE); + } }