1.概述
正式开发项目的第一步应该就是添加闪屏和引导页的功能,用户第一次安装时点开应用应该首先进入可滑动的三张引导页面或者直接动画引导页,非第一次安装点开应用时,一般都是显示应用的logo两秒然后进入主界面。
2.效果图
2.1 首次安装效果
2.2非首次安装效果
3.思路
2.1 定义一个boolean类型的变量记录是否第一次登录,默认值为true,存放在Sharepreference中。
2.2 第一次进入改变这个变量的值为false,并跳转至引导界面。非第一次进入直接进入主界面。
2.3 之后每次进入只需判断这个变量的值即可。
4.初步实现
3.1 将启动页改名为welcomeActivity并添加主题
AppWelcome(设置冷启动的效果)
<activity
android:name=".WelcomeActivity"
android:theme="@style/AppWelcome">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
样式
<!--冷启动主题-->
<style name="AppWelcome" parent="AppTheme">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@mipmap/img_qdy2</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
</style>
3.2在WelcomeActivity中判断是否是第一次进入的逻辑
public class WelcomeActivity extends AppCompatActivity {
private SharedPreferences mSp;
private SharedPreferences.Editor mEditor;
private boolean mIsFirst;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
mSp = getSharedPreferences("admin", MODE_PRIVATE);
mEditor = mSp.edit();
mIsFirst = mSp.getBoolean("isFirst", true);
new MyAsync().execute();
}
/*定义一部任务类*/
class MyAsync extends AsyncTask{
@Override
protected Object doInBackground(Object[] params) {
//闪屏两秒后进入引导页面或者主界面
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
FirstOrnot();
}
}
private void FirstOrnot() {
if (mIsFirst) {
//将isFirst修改为false
mEditor.putBoolean("isFirst",false);
mEditor.commit();
//进入引导页面splashActivity
startActivity(new Intent(WelcomeActivity.this,SplashActivity.class));
WelcomeActivity.this.finish();
} else {
//进入主界面mainactivity
startActivity(new Intent(WelcomeActivity.this,MainActivity.class));
WelcomeActivity.this.finish();
}
}
}