项目的启动页是一个动态 gif 图,一开始以为简单用 Glide 加载就可以,加载方式如下:
接下来说一下我遇到的问题:
1、公司的测试机是 p20 青春版,进入启动页动画前有一段时间的空白(其他性能比较好的手机则没有这个问题),所以就决定自己研究一下启动页优化的相关内容。(方法都是百度来的,这里做一个总结)
(1)有说 Glide 的初始化耗时的,把 Glide 的初始化放在 Application 的 create() 方法中,如下(我试完发现没多大效果,可能对于一些加载图片多的首页会有效果):
(2)将空白页(即启动页)的背景换为 gif 图对应的起始画面,这样做其实是起一个遮挡的作用,实际加载时间并没有缩短,但是起码用户体验好一些。一开始我直接将 gif 用 background 属性加载在 ImageView 中,但是这样做效果不佳,谷歌官方推荐用
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"></layer-list>
于是我的做法如下,直接上代码:
1、定义一个 welcome.xml Drawable 资源文件:
2、在 style.xml 中自定义一个 style 来引用这个资源(其中使用到的属性大家可自行百度,用于对图片进行屏幕适配的)
3、将启动页的主题换为我们自定义的 style
至此,我的问题解决,但是存在一些比较难搞定的小毛病(比如图片的拉伸),所以后续还需要做一些适配。
当然在性能稍微好一些的手机完全不需要折腾,gif 图用 glide 加载即可正常播放,也不会有启动延迟的现象出现。
最后推荐三篇我参考的博客:
https://blog.csdn.net/m0_37168878/article/details/73954183
https://blog.csdn.net/qq_22797039/article/details/70162474
https://blog.csdn.net/yuanguozhengjust/article/details/80052066