前言:欢迎界面我理解的意思是,启动程序也想要一定时间,不如用线程控制,打一下广告
效果图:
这里我就先写一个最简单一个界面,3秒后进入主程序。
manifest里这段代码,就是控制开启程序的第一个页面
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
public class SplashActivity extends AppCompatActivity {
Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
SharedPreferences sp = getPreferences(MODE_PRIVATE);
boolean isFirst = sp.getBoolean("isFirst", true);
Intent intent = new Intent();
if (isFirst) {
sp.edit().putBoolean("isFirst", false).commit();
//如果用户是第一次安装应用并进入
intent.setClass(SplashActivity.this, LoginActivity.class);
} else {
intent.setClass(SplashActivity.this, MainActivity.class);
}
startActivity(intent);
finish();
}
}, 3000);
}
}
这是第一个这个适应于 sqlite 数据库
这个适用于Bmob 数据库
public class SplashActivity extends AppCompatActivity {
Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Bmob.initialize(this,"","Bomb");
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent();
BmobUser bmobUser = BmobUser.getCurrentUser();
if(bmobUser != null){
// 允许用户使用应用
intent.setClass(SplashActivity.this, MainActivity.class);
}else{
//缓存用户对象为空时, 可打开用户注册界面…
intent.setClass(SplashActivity.this, LoginActivity.class);
}
startActivity(intent);
finish();
}
}, 3000);
}
}
第二种 调用人家已经写好的开源代码,我觉得 用Android studio最大好处 导包容易啊,但是报错也容易,苦笑。
https://github.com/PaoloRotolo/AppIntro 这里我引用的这个开源框架。
但是我有点没有看懂 ,感觉版本太多,我有个习惯不喜欢看教学视频,一般直接看源码。
这个先用简单的等我真个项目结束后,我用photoshop p4张图功能描述图 做安装简介,可以用开源框架,也可以写4页滑动,在最后一页,放一个按钮,跳进主程序。主要是虚拟机慢,不喜欢停顿的时刻。