Android动画示例教程

Android 的动画机制,挺值得前端或客户端开发者研究一波。尤其是补间动画这块,真的是入门快、效果也还不错。像是平移、缩放、透明度、旋转这些常见的动画,Android 都给你封装好了类,用起来不费劲。比如想让个按钮滑动进来,几行代码就能搞定,响应也流畅。

补间动画用的多是四个类:TranslationAnimationScaleAnimationAlphaAnimationRotateAnimation。这几个基本够用,组合一下还能做复杂效果。

创建动画挺简单,先定义动画对象,再设置下持续时间、重复次数,用 view.startAnimation() 启动就行。比如下面这个平移动画:

TranslateAnimation translateAnim = new TranslateAnimation(
  Animation.RELATIVE_TO_SELF, 0.0f,
  Animation.RELATIVE_TO_SELF, 0.5f,
  Animation.RELATIVE_TO_SELF, 0.0f,
  Animation.RELATIVE_TO_SELF, 0.5f);
translateAnim.setDuration(1000);
translateAnim.setFillAfter(true);
view.startAnimation(translateAnim);

不过,如果你想玩点更灵活的,比如动画对象不是 View,或者想同时改多个属性,那就得上 属性动画(Property Animation) 了。这玩意儿从 API 11 就开始支持,核心是 ValueAnimatorObjectAnimatorAnimatorSet,能玩出不少花样。

举个例子,给 view 背景换个颜色,就可以这么搞:

ObjectAnimator colorAnim = ObjectAnimator.ofInt(
  view, "backgroundColor", Color.RED, Color.BLUE);
colorAnim.setDuration(2000);
colorAnim.start();

想法是这样的,ValueAnimator 负责时间轴,ObjectAnimator 动态改属性,AnimatorSet 就是把多个动画合在一起。你可以玩并行动画、顺序执行啥的,都挺方便。

如果你刚开始接触 Android 动画,建议先玩补间动画,思路清晰,效果也直观。等熟了,再往属性动画那边拓展,能做出更多花里胡哨但体验棒的交互。

想看具体例子可以翻一下这篇:各类补间动画示例,还有这篇 帧动画和补间动画详解,写得也蛮清楚。

如果你平时也做 Unity 开发,那 DOTween 也可以了解一下,理念上差不多,跨平台通用思路嘛。

嗯,,动画这块玩得好,界面一下子就“活”起来了,用户体验能拉满,值得花时间研究。

zip 文件大小:2.01MB