You need to enable JavaScript to run this app. Android使用主题实现Fade Splash Screen Theme启动页淡入效果失效求解
优惠活动
大模型
产品
解决方案
定价
更多

Android使用主题实现Fade Splash Screen Theme启动页淡入效果失效求解

问题原因

  1. 动画引用错误:你自定义了时长2000ms的fade_out.xml,但主题配置中引用的是系统自带的短时长淡出动画@android:anim/fade_out,没有用到你自定义的动画资源。
  2. 缺少配套淡入动画:仅配置了启动页的退出动画,没有配置主Activity的入场淡入动画,过渡效果会不连贯,甚至看起来像没生效。
  3. 仅靠主题配置动画覆盖不全,部分系统版本需要在跳转代码中主动触发过渡。

修复步骤

  1. 新增主页面淡入动画配置,在res/anim目录下创建fade_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0" 
    android:toAlpha="1.0"
    android:fillAfter="true"
    android:duration="2000" />
  1. 修改themes.xml中的动画引用,将系统动画替换为自定义的本地动画:
<!-- Setting window animation -->
<style name="SplashTheme.WindowTransition">
    <item name="android:windowExitAnimation">@anim/fade_out</item>
    <item name="android:windowEnterAnimation">@anim/fade_in</item>
</style>
  1. 在启动页跳转主Activity的代码中主动调用过渡方法:
    Kotlin示例:
startActivity(Intent(this, MainActivity::class.java))
finish()
// 主动触发过渡动画,第一个参数为新页面入场动画,第二个为当前页面退出动画
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)

Java示例:

startActivity(new Intent(this, MainActivity.class));
finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

注意事项

如果修改后仍无效果,检查设备开发者选项中的「动画缩放」是否设置为1x,动画缩放关闭时所有过渡动画都会失效。

内容的提问来源于stack exchange,提问作者Suds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 22:00:01