《清宫Q传》iOS版本已经趋于稳定,这几日开始全力攻克android,之前一直没有android的开发经验,这次下定决心要点亮技能树了。
昨天遇到了一个问题:
游戏启动后黑屏 –> 持续4~5秒钟 –> 显示游戏首屏
这显然是不能接受的。
百度了下,有人提供的解决办法是:
- 添加splash activity,将其作为启动的activity
- splash activity设置背景图
- 延迟N秒钟之后启动首屏的activity
同时为了让切换的时候不出黑屏,还可以设置一些style,比如让首屏的activity的背景为透明的,这样在切换的时候就一直显示splash activity的背景图了。
亲测下来这些并没有什么卵用╮(╯▽╰)╭。
还是自己来吧。
拿手机对着logcat看了半天,发现黑屏的时间耗在资源加载上了,等到资源加载完,才显示UI。
那么等等,是不是可以在activity创建的时候,先显示一个全屏的图片,类似iOS的launch image,等到资源加载好了,该显示「正常」的界面的时候,再把这个图片去掉。
听上去好有道理╰( ̄▽ ̄)╮。
来试试吧!
// AppActivity.java
public class AppActivity extends Cocos2dxActivity {
protected static Handler mUIHandler;
private static ImageView img = null;
// 创建一个ImageView,splash是闪屏图片
protected ImageView createLaunchImage() {
img = new ImageView(this);
img.setImageResource(R.drawable.splash);
return img;
}
// 当资源加载好了之后要删除之前创建的imageView
// 否则一直会在界面上显示的;-)
public static void removeLaunchImage() {
mUIHandler.post(new Runnable() {
@Override
public void run() {
if (img != null) {
img.setVisibility(View.GONE);
}
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mUIHandler = new Handler();
// 显示launch image 遮住「黑屏」
addContentView(createLaunchImage(),
new WindowManager.LayoutParams(
WindowManager.LayoutParams.FILL_PARENT,
WindowManager.LayoutParams.FILL_PARENT));
...
}
亲测有效<( ̄▽ ̄)> 哇哈哈…