欢迎页面设置三个动画,旋转,缩放,渐变。然后直接进入另一个界面。就是三个viewPaper组成的。同是设置一个标记。利用sp存储,这样在下次进入程序时根据标记来判断是否进入,如果第一次已经进入,那么下次就可以直接跳过进入主页面。
闲话不说,直接代码。
public class SplashActivity extends Activity {
private static final String TAG = SplashActivity.class.getSimpleName();
public static final String START_MAIN_ACTIVITY = "start_mainActivity";
private RelativeLayout rl_splash_rootview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
rl_splash_rootview = (RelativeLayout) findViewById(R.id.rl_splash_rootview);
//设置三个动画:缩放动画,旋转动画,渐变动画
ScaleAnimation sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
sa.setDuration(2000);//设置播放时长
sa.setFillAfter(true);//设置停留在播放后的状态
RotateAnimation ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
ra.setDuration(2000);//设置播放时长
ra.setFillAfter(true);//设置停留在播放后的状态
AlphaAnimation aa = new AlphaAnimation(0, 1);
aa.setDuration(2000);
aa.setFillAfter(true);
//让三个动画同时播放,添加动画没有先后顺序
AnimationSet set = new AnimationSet(false);
set.addAnimation(sa);
set.addAnimation(ra);
set.addAnimation(aa);
rl_splash_rootview.startAnimation(set);
//监听动画播放完成?监听set的动画播放完成
set.setAnimationListener(new SplashAnimationListener());
}
class SplashAnimationListener implements Animation.AnimationListener {
/**
* 当动画开始播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationStart(Animation animation) {
Log.e(TAG, "onAnimationStart-----");
}
/**
* 当动画播放完成的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationEnd(Animation animation) {
//判断一下是否进入过引导页面;
//如果进入过了,并且点按钮了,就直接主页面,
//否则去引导页面
Intent intent;
boolean isStartMainActivityed = CacheUtils.getBoolean(SplashActivity.this, START_MAIN_ACTIVITY);
if (isStartMainActivityed) {
//直接进入主页面
intent = new Intent(SplashActivity.this, MainActivity.class);
} else {
intent = new Intent(SplashActivity.this, GuideActivty.class);
}
Log.e(TAG, "onAnimationEnd-----");
// Toast.makeText(getApplication(),"动画播放完成",Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}
/**
* 当动画重复播放的时候回调这个方法
*
* @param animation
*/
@Override
public void onAnimationRepeat(Animation animation) {
Log.e(TAG, "onAnimationRepeat-----");
}
}
}
xml文件就一个imageview需要添加。
<ImageView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/splash_sheep_newyear" />