最簡(jiǎn)單的方法無(wú)非是在游戲里設(shè)置……這樣蘋(píng)果和安卓都有了,還好加各種特效。
重點(diǎn)說(shuō)一下給安卓加啟動(dòng)圖,思路是:加一個(gè)新的activity,sleep一會(huì)兒,再跳到主activity。
好,新建一個(gè)activity叫SplashActivity,繼承自Activity,不要繼承自cocos的activity,它會(huì)自動(dòng)去幫你走AppDelegate……
參考以下代碼:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 常亮
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// 橫屏旋轉(zhuǎn)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
//隱藏虛擬按鍵,并且全屏
final Window window = getWindow();
setHideVirtualKey(window);
window.getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
setHideVirtualKey(window);
}
});
Log.i("LUA", "on splash activity create");
/*mainLayout初始化*/
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setBackgroundColor(Color.WHITE);
mainLayout.setLayoutParams(new LinearLayout.LayoutParams(-1,-1));
mainLayout.setGravity(17); // 17 的意義是 "CENTER"
/*iv初始化*/
ImageView iv = new ImageView(this);
iv.setLayoutParams(new LinearLayout.LayoutParams(-1,-2));
iv.setScaleType(ImageView.ScaleType.CENTER);//居中顯示
int resId=this.getResources().getIdentifier("bg","drawable",getPackageName());
iv.setImageResource(resId);
mainLayout.addView(iv);//添加iv
setContentView(mainLayout);//顯示manLayout
Thread myThread=new Thread(){//創(chuàng)建子線程
@Override
public void run() {
try{
sleep(2000);//使程序休眠五秒
Log.i("LUA", "splash sleep end");
Intent it=new Intent(getApplicationContext(), AppActivity.class);//啟動(dòng)MainActivity
startActivity(it);
finish();//關(guān)閉當(dāng)前活動(dòng)
}catch (Exception e){
e.printStackTrace();
}
}
};
myThread.start();//啟動(dòng)線程
}
public void setHideVirtualKey(Window window){
//保持布局狀態(tài)
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE|
//布局位于狀態(tài)欄下方
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION|
//全屏
View.SYSTEM_UI_FLAG_FULLSCREEN|
//隱藏導(dǎo)航欄
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
if (Build.VERSION.SDK_INT>=19){
uiOptions |= 0x00001000;
}else{
uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
}
window.getDecorView().setSystemUiVisibility(uiOptions);
}
@Override
protected void onResume() {
super.onResume();
final Window window = getWindow();
setHideVirtualKey(window);
}
大概做的事情就是,創(chuàng)建一個(gè)layout,然后在layout里創(chuàng)建一個(gè)ImageView,圖片為bg,為了使ImageView居中,所以設(shè)置了父控件的gravity,顯示完了,創(chuàng)建一個(gè)線程,sleep2秒鐘,跳到AppActivity,splash這個(gè)activity橫屏且隱藏狀態(tài)欄和虛擬按鈕。
最后,記得把AndroidManifest里的啟動(dòng)activity換成新建的這個(gè)activity。
另外,為了讓蘋(píng)果的啟動(dòng)圖時(shí)間久一點(diǎn),可以在didFinishLaunchingWithOptions里加上一句
// 啟動(dòng)圖片延時(shí): 1秒
[NSThread sleepForTimeInterval:1];
經(jīng)實(shí)測(cè),1秒的效果蠻好的。