安卓开发之播放多个动画详解

       有时候,在南昌APP开发项目中需要同时执行一些动画。其实这很简单,同时调用start()方法就行了。

       但是,如果要像编排舞步那样编排多个动画的执行,事情就没那么简单了。例如,为实现完整的日落景象,太阳落下去之后,天空应该从橘黄色再转为午夜蓝。我们可以使用AnimatorListener,AnimatorListener会让你知道动画什么时候结束。这样,执行完第一个动画,我们就可以接力执行第二个夜空变化的动画。

       然而,理论分析很简单,实际去做的话,少不了要准备多个监ting器,这也很麻烦。好在Android还设计了方便又简单的AnimatorSet。下面易速网络就来带大家了解一下。

       首先,如下代码清单所示,删除掉原来的动画启动代码,并添加夜空变化的动画代码。

       创建夜空动画(SunsetFragment.java)

       private void startAnimation() {

       ...

       sunsetSkyAnimator.setEvaluator(new ArgbEvaluator());

       ObjectAnimator nightSkyAnimator = ObjectAnimator

       .ofInt(mSkyView, "backgroundColor", mSunsetSkyColor, mNightSkyColor)

       .setDuration(1500);

       nightSkyAnimator.setEvaluator(new ArgbEvaluator());

       heightAnimator.start();

       sunsetSkyAnimator.start();

       }

       然后,创建并执行一个动画集,如下代码清单所示。

       创建动画集(SunsetFragment.java)

       private void startAnimation() {

       ...

       ObjectAnimator nightSkyAnimator = ObjectAnimator

       .ofInt(mSkyView, "backgroundColor", mSunsetSkyColor, mNightSkyColor)

       .setDuration(1500);

       nightSkyAnimator.setEvaluator(new ArgbEvaluator());

       AnimatorSet animatorSet = new AnimatorSet();

       animatorSet

       .play(heightAnimator)

       .with(sunsetSkyAnimator)

       .before(nightSkyAnimator);

       animatorSet.start();

       }

       说白了,AnimatorSet就是可以放在一起执行的动画集。可以用好几种方式创建动画集,但使用上述代码中的play(Animator)方法更容易。

       调用play(Animator)方法之前,要先创建一个AnimatorSet.Builder对象,然后利用它创建链式方法调用。传入play(Animator)方法的Animator是链首。所以,以上代码中的链式调用就可以这样解读:协同执行heightAnimator和sunsetSkyAnimator动画;在nightSkyAnimator之前执行heightAnimator动画。在实际南昌APP开发中,可能会用到更复杂的动画集。这也没问题,需要的话,可以多次调用play(Animator)方法。

       再次运行Sunset应用,就可以欣赏这美丽的动画了。

提供全面的搜索引擎优化学习交流,专注网站优化和搜索引擎营销推广服务。用专业的SEO技术为企业网站提升关键词排名,让你的网站不仅满足用户体验还要适合搜索引擎优化规则。
易速网站优化公司 » 安卓开发之播放多个动画详解
享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡