android 闪屏页—>ViewPager引导页—>主页面

本文详细介绍了如何在Android应用中实现从闪屏页无缝过渡到ViewPager引导页,最后进入主页面。引导页在滑动时,底部灰点跟随页面移动,最后一页显示开始体验按钮。再次登录时,直接跳过引导页。文章涵盖了自定义BaseActivity、SplashActivity、GuideActivity的实现,以及相关布局文件、工具类和资源文件的创建。
摘要由CSDN通过智能技术生成

效果图介绍:通过旋转、缩放、淡入淡出引入闪屏页后进入引导页,页面滑动时,底部的红点会随之移动(注意不是从一个灰点直接跳到另一个灰点),到达最后一个页面时才显示开始体验按钮,点击进入主页面;当再次登入时,直接由闪屏页进入到主页面(要想显示引导页,可以将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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值