背景:
Android 开发过程中启动页是必不可少的,但是我们经常会看到启动打开后是先白屏或者黑屏,然后才会显示出启动页的图片,本文会解析此现象的原因,以及给出解决方案。
1.1 那么启动应用程序白屏或者黑屏的原因是什么了?
Android应用程序,AndroidMainfest.xml中的 application标签中设置了theme主题,当设置的 them主题是Light 类型时,显示的就是白屏,当设置的 theme主题时 Dark时,显示的就是 黑屏。那么为什么会是这样的了?
当系统启动一个app时,zygote进程会fork一个app子进程,进程创建后在启动activity时就会创建一个window
,这个window会使用theme
中设置的windowBackground来显示背景颜色或者图片,当使用Light
或Dark
时跟进代码就能看到默认设置的windowBackground
就是白色和黑色。
很显然我们可以看到,在Applicaiton启动的时候时候,会通过Window.setBackgroundDrawable(winBg) 来设置背景,这里的 winBg 就是在applicaiton下配置的 style主题属性。所以为了解决这个背景问题,我们可以这么做
1:通过 Theme 的 style属性修改背景