很多SDK都明确要求在游戏启动的时候,显示一张含有渠道SDK Logo的一张全屏图片,大概需要显示2至3秒的时间。像UC,百度SDK是在自己的SDK里已经自带了闪屏的功能(一般是在SDK初始化的时候)。但是,还有很多其他渠道需要游戏在接入他们的SDK时,自己去实现这个闪屏功能。他们仅仅提供一张闪屏图片。
那么,如何做到游戏启动的时候,先启动闪屏图片,显示两三秒再切换到游戏画面呢?我们的做法是定义一个SplashActivity。作为主启动Activity。这个Activity就是显示指定的闪屏图片,两三秒之后启动游戏的主Activity。
那么,现在要解决的是,因为我们不能再SplashActivity里写死,启动哪个游戏的Activity.因为,LTSdk是针对所有游戏的,每个游戏的启动Activity都不一样,所以,我们在闪屏结束后跳转到游戏的主Activity时可以使用抽象方法,让CP自己去实现这个跳转过程。
首先,我们来看下这个LTSplashActivity:
@Override protected int getBackgroundColor() { return Color.WHITE; } @Override protected void startGameActivity() { Intent intent = new Intent(this,MainActivity.class); startActivity(intent); finish(); }
在LTSplashActivity里面我们首先创建一个动态布局FrameLayout,然后将ImageView添加进去,并设置属性。然后获取游戏配置的横竖屏设置,根据不同的屏幕配置我们设置不同的图片资源,这个时候我们就做到了游戏的横竖屏适配。在闪屏结束后,就可以开启游戏的主Activity了,但是这个时候我们并不知道游戏的主Activity是什么,怎么解决呢?那就让游戏自己去实现,我们只需要提供抽象方法给游戏实现即可。
不管渠道有一张或者多张闪屏,我们都放在集合中顺序播放就可以了,没有则直接进入游戏主Activity即可。