android 属性动画的实现以及跳转

首先,你要写一个图片,然后find到图片的id。(像以下代码一样)。

<ImageView
        android:id="@+id/iv_splash"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/i"
        android:layout_gravity="center"
        />

然后开始切入正题,为了使动画效果美观,需要隐藏标题栏。然后获取屏幕高度进行动画展示。

 DisplayMetrics displayMetrics = getResources().getDisplayMetrics();//这个好像是可以获取屏幕高度
        int height = displayMetrics.heightPixels;//获取屏幕高度
        //缩放---ofFloat用4个参数的ofFloat
        ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(iv_splash, "scaleX", 2, 1);
        //渐变
        ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(iv_splash, "alpha", 0, 1);
        //旋转
        ObjectAnimator objectAnimator3 = ObjectAnimator.ofFloat(iv_splash, "rotation", 0, 360);
        //移动
        ObjectAnimator objectAnimator4 = ObjectAnimator.ofFloat(iv_splash, "translationY", 0, height / 2 - iv_splash.getHeight() / 2);

        //组合
        AnimatorSet set = new AnimatorSet();
        /**
         * 动画执行
         */
        set.play(objectAnimator1).with(objectAnimator2).with(objectAnimator3).with(objectAnimator4);
        set.setDuration(3000);
        set.start();

最后需要给属性动画设置监听-----执行动画播放完毕之后的页面跳转。

 set.addListener(new Animator.AnimatorListener() {
            @Override
            public void onAnimationStart(Animator animation) {

            }
            //动画执行完后跳转到主activity
            @Override
            public void onAnimationEnd(Animator animation) {
                Intent intent = new Intent(MainActivity.this,Main2Activity.class);
                startActivity(intent);
            }

            @Override
            public void onAnimationCancel(Animator animation) {

            }

            @Override
            public void onAnimationRepeat(Animator animation) {

            }
        });

猜你喜欢

转载自blog.csdn.net/weixin_43808025/article/details/85944752