目前的App在安装后,第一次打开,都会显示两秒左右的logo,然后进入引导页。如果关闭App,再重新打开,则只会显示logo,然后直接进入主页。
最近写了这个,记录一下。
项目地址在文章最后。
首先是过渡动画,因为它不论App是否第一次启动都会显示。
这里我使用了Handler的postDelayed()方法。把过渡动画的Activity设为默认启动的Activity。在当前Activity中,执行postDelayed()方法,把延时的时长设为两秒即可。
过渡页面如下:transition_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#fff"
>
<ImageView
android:src="@drawable/profile"
android:layout_marginTop="80dp"
android:layout_gravity="center"
android:layout_width="100dp"
android:layout_height="100dp" />
</LinearLayout>
这里因为我的图片背景是白色的,就没有设置LinearLayout的背景色了,如果Logo的背景色不一样,则可以进行设置。也可以直接用ImageView解决。
过渡Activity如下:TransitionActivity.java
package com.ikok.transitionandguidingpage;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
/**
* Created by Anonymous on 2016/3/25.
*/
public class TransitionActivity extends Activity {
boolean isFirstIn = false;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.transition_view);
final SharedPreferences sharedPreferences = getSharedPreferences("is_first_in_data",MODE_PRIVATE);
isFirstIn = sharedPreferences.getBoolean("isFirstIn",true);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (isFirstIn) {
// Toast.makeText(TransitionActivity.this, "First log", Toast.LENGTH_SHORT).show();
intent = new Intent(TransitionActivity.this, GuideActivity.class);
TransitionActivity.this.startActivity(intent);
TransitionActivity.this.finish();
} else {
intent = new Intent(TransitionActivity.this, MainActivity.class);
TransitionActivity.this.startActivity(intent);
TransitionActivity.this.finish();
}
}
}, 2000);
}
}
显示了过渡动画后,则需要判断是否是第一次启动App了。因为根据是否是第一次启动App会判断进入引导页还是主页。
因为这个判断并不是一次执行就不需再执行了,而是每次启动App的时候都需要进行判断。所以这个判断的数据需要持久化。<