From 1155e8c5c8d21c601b79eaa1a41d36b017e5bc03 Mon Sep 17 00:00:00 2001 From: MiMo Date: Fri, 10 Jul 2026 20:18:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=BB=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=BC=80=E5=B1=8F=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MainActivity首次启动时显示5秒开屏画面,展示应用标题和副标题。 - 使用FrameLayout覆盖层实现居中展示 - 标题和副标题依次淡入,5秒后整体淡出 - 开屏背景使用主色调,文字白色/半透明白色 - onDestroy中清理Handler防止内存泄漏 --- bytheway/build.properties | 4 +- .../winboll/studio/bytheway/MainActivity.java | 56 +++++++++++++ .../src/main/res/layout/activity_main.xml | 79 ++++++++++++++----- bytheway/src/main/res/values/colors.xml | 3 + bytheway/src/main/res/values/strings.xml | 4 +- 5 files changed, 125 insertions(+), 21 deletions(-) diff --git a/bytheway/build.properties b/bytheway/build.properties index f23cde2..d322112 100644 --- a/bytheway/build.properties +++ b/bytheway/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Fri Jul 10 13:02:55 HKT 2026 +#Fri Jul 10 20:15:30 CST 2026 stageCount=4 libraryProject= baseVersion=15.20 publishVersion=15.20.3 -buildCount=0 +buildCount=3 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 f9d2e64..46d166d 100644 --- a/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java +++ b/bytheway/src/main/java/cc/winboll/studio/bytheway/MainActivity.java @@ -2,8 +2,13 @@ package cc.winboll.studio.bytheway; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.widget.TextView; import androidx.appcompat.widget.Toolbar; import cc.winboll.studio.bytheway.activities.AboutActivity; import cc.winboll.studio.bytheway.activities.BaseWinBoLLActivity; @@ -18,6 +23,11 @@ import cc.winboll.studio.libappbase.ToastUtils; public class MainActivity extends BaseWinBoLLActivity { public static final String TAG = "MainActivity"; + private static final long SPLASH_DURATION = 5000L; + private static final long SPLASH_FADE_IN = 800L; + private static final long SPLASH_FADE_OUT = 500L; + private View splashOverlay; + private final Handler splashHandler = new Handler(); @Override public String getTag() { @@ -33,6 +43,7 @@ public class MainActivity extends BaseWinBoLLActivity { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); + initSplash(); ToastUtils.show("onCreate"); } @@ -41,6 +52,12 @@ public class MainActivity extends BaseWinBoLLActivity { super.onResume(); } + @Override + protected void onDestroy() { + splashHandler.removeCallbacksAndMessages(null); + super.onDestroy(); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { AESThemeUtil.inflateCompatThemeMenu(this, menu); @@ -76,4 +93,43 @@ public class MainActivity extends BaseWinBoLLActivity { } return true; } + + private void initSplash() { + splashOverlay = findViewById(R.id.splash_overlay); + final TextView splashTitle = findViewById(R.id.splash_title); + final TextView splashSubtitle = findViewById(R.id.splash_subtitle); + + AlphaAnimation fadeInTitle = new AlphaAnimation(0f, 1f); + fadeInTitle.setDuration(SPLASH_FADE_IN); + fadeInTitle.setFillAfter(true); + splashTitle.startAnimation(fadeInTitle); + + AlphaAnimation fadeInSubtitle = new AlphaAnimation(0f, 1f); + fadeInSubtitle.setDuration(SPLASH_FADE_IN); + fadeInSubtitle.setStartOffset(SPLASH_FADE_IN); + fadeInSubtitle.setFillAfter(true); + splashSubtitle.startAnimation(fadeInSubtitle); + + 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); + } + }, SPLASH_DURATION); + } } diff --git a/bytheway/src/main/res/layout/activity_main.xml b/bytheway/src/main/res/layout/activity_main.xml index 934dc69..5fb6836 100644 --- a/bytheway/src/main/res/layout/activity_main.xml +++ b/bytheway/src/main/res/layout/activity_main.xml @@ -1,29 +1,72 @@ - - - + android:layout_height="match_parent"> + android:layout_height="match_parent" + android:orientation="vertical"> - + + + + + + + + + + + + android:layout_gravity="center" + android:orientation="vertical" + android:gravity="center" + android:padding="32dp"> - - + + + + + + + + diff --git a/bytheway/src/main/res/values/colors.xml b/bytheway/src/main/res/values/colors.xml index eb36144..10f916f 100644 --- a/bytheway/src/main/res/values/colors.xml +++ b/bytheway/src/main/res/values/colors.xml @@ -9,4 +9,7 @@ #1565C0 #616161 #FAFAFA + #1565C0 + #FFFFFF + #B3FFFFFF \ No newline at end of file diff --git a/bytheway/src/main/res/values/strings.xml b/bytheway/src/main/res/values/strings.xml index 7e4f38d..05a1871 100644 --- a/bytheway/src/main/res/values/strings.xml +++ b/bytheway/src/main/res/values/strings.xml @@ -4,5 +4,7 @@ GPS列表 应用介绍 The [ByTheWay] project is designed to quickly schedule task reminders related to time and location. Its main feature is the ability to quickly create task-related data. - + ByTheWay + By the way, I mention this for you. +