国产动画音乐分享组

Android变身法术-转场动画

小马说码 2019-11-18 14:12:01

那年,Android刚刚降生,他一无所长,为了能够变得强大,他决心苦心修炼,修习各门法术。十多年的风雨岁月一晃而过,而Android在Google家族的帮助下,也变得越来越强大,成为天下一等一的高手,拥有全世界最多的拥护者。回首这十多年中Android苦修各门法术的经历,每一段经历都可以说成一个精彩的故事。

今天,想给大家讲讲Android修炼变身法术-转场动画的那段故事。

那年,Android要变身(从一个页面跳转另一个页面的转场动画效果),启动变身法术,你会看到很生硬的变身效果。那可真是不好看,Android自己却并不知道,只知道大家都嘲笑他变身时的样子。他很郁闷,觉得自己能变身就好,而且自己变身的样子也还好呀,为什么大家都嘲笑他呢?这也不能全怪Android,毕竟他从来没有见到过比他的变身法术更好看的法术了,那就老话怎么说来着,“没有对比就没有伤害”。直到有一天,镇上来了个俊朗的小伙子iOS,当iOS变身的那一刻,Android终于明白了大家为什么都嘲笑自己。iOS的变身法术实在是太美了,简直就是炫酷啊,而自己的法术呢,真的很难看,Android想着想着,脸都羞红了。再次看向iOS,Android的目光里充满了敬佩和羡慕之意,暗自下定决心,一定要苦修变身法术,总有一天,要超过iOS。

日复一日,年复一年,Android现在终于修成了令人满意的变身法术。他炼成了四种不同的变身效果:分解、滑动进入、淡入淡出,还有共享元素动画为了让大家都知道自己修炼的成果,于是,他向大家展示了他修炼的这四种变身效果

第一个:explode(分解) – 从中间进或出

这个法术只有三个施术动作:

首先,启动变身,

startActivity(new Intent(this, Main2Activity.class), 

ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

之后,设置变身分解效果和变身时长,在变身后页面

getWindow().setEnterTransition(new Explode().setDuration(2000));

getWindow().setExitTransition(new Explode().setDuration(2000)); 

最后,激活变身的过渡效果,styles.xml文件中添加

<item name="android:windowContentTransitions">true</item>

第二个:slide(滑动) - 从边缘进或出

和分解效果一样,它也是三个施术动作:

首先,启动变身,

startActivity(new Intent(this, Main2Activity.class), 

ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

之后,设置变身分解效果和变身时长,在变身后页面

getWindow().setEnterTransition(new Slide().setDuration(2000)); 

getWindow().setExitTransition(new Slide().setDuration(2000)); 

最后,激活变身的过渡效果,styles.xml文件中添加<item name="android:windowContentTransitions">true</item>

第三个:fade(淡出) –通过改变不透明度达到变身效果 

还是一样,三个施术动作

首先,启动变身,

startActivity(new Intent(this, Main2Activity.class), 

ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

之后,设置变身分解效果和变身时长,在变身后页面

getWindow().setEnterTransition(new Fade().setDuration(2000)); 

getWindow().setExitTransition(new Fade().setDuration(2000));

最后,激活变身的过渡效果,styles.xml文件中添加<item name="android:windowContentTransitions">true</item>

第四种:共享元素-变身前后都存在的元素有衔接的效果

相比于前三个效果,共享元素动画有更加炫酷的效果。

比如变身前中间有个小按钮,变身后顶部有个大按钮,变身时,你会看到好像大按钮是从小按钮直接通过缩放和移位变化过来的,而非大按钮自己出现。

这个法术主要是两个动作:

首先,给两个需要衔接的按钮设置相同的属性,分别添加Android:transitionName="mybtn"属性;

然后,启动变身,startActivity(new Intent(this,Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this,view,"mybtn").toBundle();


Android潇洒的展示完这四种变身法术后,全场响起了雷鸣般的掌声,赞许Android的新变身法术。

人们都坚信,Android未来还会修炼出更多更棒的变身法术效果,期待Android的未来。


(声明:本文纯属杜撰,不代表任何官方观点,如有雷同纯属巧合)

(版权申明:本文图片全部来源于网络)


喜欢我就赶快关注“小马说码”吧,更多精彩的文章等你哦




Copyright © 国产动画音乐分享组@2017