欢迎页面的三个动画

欢迎页面设置三个动画,旋转,缩放,渐变。然后直接进入另一个界面。就是三个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" />



猜你喜欢

转载自blog.csdn.net/qq_30299243/article/details/50849776