效果图介绍:通过旋转、缩放、淡入淡出引入闪屏页后进入引导页,页面滑动时,底部的红点会随之移动(注意不是从一个灰点直接跳到另一个灰点),到达最后一个页面时才显示开始体验按钮,点击进入主页面;当再次登入时,直接由闪屏页进入到主页面(要想显示引导页,可以将app的缓存清除);
1、自定义类BaseActivity继承自Activity:
public class BaseActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//去掉标题栏;
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
//重写startActivity方法;
public void startActivity(Context context1, Class<?> context2)
{
startActivity(new Intent(context1, context2));
}
}
2、闪屏页的代码SplashActivity :
public class SplashActivity extends BaseActivity {
RelativeLayout rlRoot;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
rlRoot = (RelativeLayout)findViewById(R.id.rl_root);
startAnimation(); //设置动画;
}
private void startAnimation()
{
AnimationSet set = new AnimationSet(false); //设置动画集合;
//旋转动画,0到360度旋转,自身围绕中心点(0.5f)旋转;
RotateAnimation rotate = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(1000); //旋转事件;
rotate.setFillAfter(true); //保持动画状态;
//缩放动画;
ScaleAnimation scale = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f);
scale.setDuration(1000);
scale.setFillAfter(true);
//淡入淡出动画;
AlphaAnimation alpha = new AlphaAnimation(0, 1);
alpha.setDuration(1000);
alpha.setFillAfter(true);
set.addAnimation(rotate);
set.addAnimation(scale);
set.addAnimation(alpha);
//设置动画监听;
set.setAnimationListener(new AnimationListener()
{
@Override
public void onAnimationStart(Animation animation)
{
}
@Override
public void onAnimationRepeat(Animation animation)
{
}
//动画执行结束;
@Override
public void onAnimationEnd(Animation animation)
{
nextPage();
}
});
rlRoot.startAnimation(set); //播放动画;
}
//不是第一次登陆就直接跳转页面;
private void nextPage()
{
boolean userGuide = PreUtils.getBoolean(this, "guide_showed", false);
if(!userGuide)
{
startActivity(SplashActivity.this, GuideActivity.class);
}
else
{
startActivity(SplashActivity.