先来看一下效果
分析实现原理:
这里主要知识点是对动画的使用,原理页很简单,在一个 Activity 中布局两个 Fragment,不用 fragment 也行,但是在同一个 xml 中代码量就会比较庞大;初始化的时候让第二个 Fagment 移动到底部隐藏起来,就是刚启动应用时的界面,点击开始之后,执行相应的动画,第一个 Fragment 的 X 和 Y都同时缩小,并且一开始让 X旋转25度,等一定时间,让 X旋转的角度复原,此过程就是 Fragment 的向后移动的动画过程,同时有一个黑色的背景设置它的透明度,从全透到0.5f;第二个Fragment动画就非常简单,单纯的向下和向上移动。
这里就贴一部分代码出来,有兴趣了解的可以直接下载源码下来研究。
贴代码过程:
向后移动动画
mHoverView.setClickable(true);
/*设置背景透明度动画*/
ObjectAnimator animator = ObjectAnimator.ofFloat(mHoverView, "alpha", 0, 0.5f);
/*放小X 的动画*/
ObjectAnimator scaleXAnim = ObjectAnimator.ofFloat(mOriginalView, "scaleX", 1.0f, .8f);
/*放小Y 的 动画*/
ObjectAnimator scaleYAnim = ObjectAnimator.ofFloat(mOriginalView, "scaleY", 1.0f, .8f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(animator, scaleXAnim, scaleYAnim);
animatorSet.setDuration(350);
animatorSet.start();
/*先让X 旋转20度的动画*/
ObjectAnimator transX = ObjectAnimator.ofFloat(mOriginalView,"RotationX",20.0f);
transX.setDuration(150);
transX.start();
/*等一定时间让X 旋转角度复位*/
ObjectAnimator resumeX = ObjectAnimator.ofFloat(mOriginalView,