不久前项目开始了一段时间了,刚开始怀疑是Android Studio中新加入的Instant Run功能引起的,于是重新打release包后再次运行发现还是有这样的问题,突然想到了上次集成进来了云信,于是猜想可能的确是加入云信后Application里面初始化操作再加上HomeActivity主界面的一些初始化耗时操作引起的,于是我们想办法消灭白屏,有已下两种方案可参看:
1.在启动Activity的界面主题样式上加上这样的item
<style name="Theme.Start" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowFullscreen">true</item> <item name="android:windowBackground">@drawable/splash</item> </style>
在drawable目录下建立splash
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:id="@+id/bitmap_splash" android:src="@mipmap/bg_welcome"> </bitmap> </item> </layer-list>
这个背景图片自定义成你自己的启动图片。
2.直接在 style里面加上
<style name="Theme.Start" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> </style>
windowIsTranslucent和windowNoTitle,将这两个属性都设置成true,就可以让程序在初始化的时候窗口是透明的,初始化结束后程序主界面才会显示出来,从而也就完全看不到白屏界面了。
基本上就是上面两种解决方案了,第一种方案点击后可以迅速出来应用启动界面但是需要用户等一段时间才能进去,第二种方案点击桌面上的icon开始会等一会splash才会出现,等到应用初始化完成后才出来。两种各有优势,具体采用那种看自己需求,本人推荐使用第一种,用户体验较好。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持找一找教程网。