自己写一个简单的Splash界面的过程

本文介绍如何在Android应用中实现简洁的启动画面(Splash Screen),包括设置主题、布局配置及使用Handler进行延迟跳转等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先新建一个空的activity工程,默认有一个MainAativity,本次练习想实现一个简单的splash界面,短暂的停顿进入主界面,开始新建目录的时候遇到一些问题,Android studio自动识别目录下的文件,如果有的目录下没有文件,他会这样显示。

其实我的目录里有一个ui和一个activity目录,不像xcode那样,空的目录直接显示。

       紧接着我就新建了一个splash界面,MainActivitymorning是继承与AppCompatActivity,而AppCompatActivity继承与FragementActivity,FragementActivity继承与Activity,也就说AppCompatActivity这个里面包含了fragement的一些特性,如果splash只是实现一个显示全屏的图片,直接继承与Activity就可以了,然后再创建一个splash的layout文件,在activity_splash.xml里增加一行代码,splash是一张图片:splash.png。提前加到mipmap文件夹下。

android:background="@mipmap/splash"

接着打开AndroidManifest.xml配置文件,把

android.intent.action.MAIN

对应的activity修改为Splash的,如:

<activity android:name=".ui.activity.SplashActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
然后记得把原来的MainActivity注册到这个配置文件里,我当时没加,切换的时候闪退了。

<activity android:name=".ui.activity.MainActivity">

</activity>
返回到SplashAcitivity.java文件里,在onCreate函数里增加以下代码

setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
         goToMain();
    }
},800);
主要是加载layout文件,并且显示,延迟0.8s后执行goToMain函数进入主界面。

最后发现每次启动的过程中,都会有一个白屏显示一下才显示splash界面,这样的用户体验肯定不好,所以经过同事辅导,和查了网上一些资料,修改了一下,达到预期效果

主要是给splash增加一个theme配置文件:

<!--splash主题-->
<style name="Theme.Splash" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@mipmap/splash</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<activity android:name=".ui.activity.SplashActivity"
    android:screenOrientation="portrait"
    android:theme="@style/Theme.Splash">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

只需要修改这两个文件,一切搞定。最后提醒通常splash界面程序启动完就应该小时,不可以返回,让资源尽快释放,记得之星finish().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值