Android splash的实现

Android splash的实现

目录

一、Splash的作用二、Splash的三种实现1、SplashActivity2、MainActivity中控制view的显示3、设置Application或者MainActivity的主题

三、总结

一、Splash的作用

最近做flutter项目,由于app启动时需要初始化flutter引擎,这个过程比较耗时,会有较长时间的白屏(或黑屏,跟设置的application、activity的theme有关),用户体验不太好,于是需要加一个splash页面。 那什么时候需要用到splash呢?1、启动阶段有耗时的初始化操作,影响到了用户体验;2、需要展示公司logo、广告等信息。

二、Splash的三种实现

1、SplashActivity

将SplashActivity作为app启动的第一个activity,SplashActivity启动后延时一段时间跳转到MainActivity。网上可以搜到很多实现,这里就不展开了。

2、MainActivity中控制view的显示

将MainActivity作为app启动的第一个activity,MainActivity启动后先展示SplashView,延迟一段时间将SplashView隐藏并显示主页面。

3、设置Application或者MainActivity的主题

AndroidManifest.xml

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:name="com.xxx.MyApplication"

android:theme="@style/my.NoTitleBar.Theme">

android:screenOrientation="portrait"

android:name="com.xxx.views.MainActivity"

android:theme="@style/my.NoTitleBar.Theme"

android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"

android:windowSoftInputMode="adjustResize">

res/values/styles.xml

res/drawable/splash_bg.xml

android:gravity="bottom"

android:src="@drawable/launch_splash" />

三、总结

前两种实现,在app初始化耗时的情况下,依旧会闪现白屏。而设置Application或者MainActivity的主题可以避免闪现白屏,但是无法设置延迟时间,适用于“启动阶段有耗时的初始化操作,影响到了用户体验”。若是需要使公司logo、广告等信息展示固定时间,则可以将设置主题和SplashActivity(或MainActivity中控制view的显示)结合使用来实现。

【参考文档】

https://www.zhihu.com/question/29424875https://blog.csdn.net/qq_36455052/article/details/78429713

清芳推荐

iPhone十周年:为什么说苹果手机改变了世界
第365用英语怎么说

iPhone十周年:为什么说苹果手机改变了世界

📅 08-12 👀 7701
aca面包机如何预约烘烤
第365用英语怎么说

aca面包机如何预约烘烤

📅 10-17 👀 5754
褐是什么意思?褐的拼音和解释
体育投注365下载

褐是什么意思?褐的拼音和解释

📅 08-12 👀 1741