安卓欢迎界面一般有普通图标页和广告页两种,广告页上同时显示倒数读秒同时可以选择跳过。
老大让我实现两种并在主界面中可以设置选择哪种模式还有时长,结果我误入歧途,做成了选择之后直接跳到欢迎界面,还费劲用handler还有startActivityForResult传数据过来,后来老大指点迷津,原来只需要把主界面的选项存下来,然后下次启动时在启动页判断就好了,这里我用了SharedPreferences。
首先把标题栏隐藏
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); //无title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_splash);//放在后面
一、普通欢迎界面
new一个子线程然后使程序休眠就好了,然后跳转界面。
new Thread(new Runnable() {
//创建子线程
@Override
public void run() {
try{
sleep(Integer.valueOf(time) * 1000);//休眠五秒
if(!time.equals("")){startActivity(new Intent(Splash.this, MainActivity.class));//为了避免点击跳转后跳转两次
Splash.this.finish();
}
}catch (InterruptedException e){
e.printStackTrace();
}
}
}).start();
二、可跳过的广告页
再new一个子线程,倒数每秒向handler传message,在handler中执行UI操作,也就是显示倒数。
new Thread() {
@Override
public void run() {
try {
if (time != null && !time.equals("")) {
for (int i = Integer.valueOf(time); i >= 0; i--) ;
handler.sendEmptyMessage(i);
sleep(1000);
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
public Handler handler= new Handler(){
public void handleMessage(Message msg){
super.handleMessage(msg);
skip.setText("(" + String.valueOf(msg.what) + "s)跳过");
}
};
跳转:设置TextView的点击事件
skip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
time="";//为了避免点击跳过之后,普通页的线程未结束
startActivity(new Intent(Splash.this, MainActivity.class));
Splash.this.finish();
}
});
安卓欢迎界面实现
2415

被折叠的 条评论
为什么被折叠?



