前言
Android除了支持逐帧动画之外,也提供了对补间动画的支持,补间动画就是指开发人员只需要指定动画的开始、动画结束的"关键帧",而动画变化的"中间帧"由系统计算并补齐。本文就讲解如何在Android下使用补间动画,最后将以简单的Demo来演示。
本文的主要内容:
- Animation
- AlphaAnimation
- RotateAnimation
- ScaleAnimation
- TranslateAnimation
- AnimationSet
- Animation变化坐标点的参照类型
- Animation的Interpolator
在Android中使用Tween补间动画需要得到Animation的支持,它处于"android.view.animation.Animation"包下,是一个抽象类,其中抽象了一些动画必须的方法,其子类均有对其进行实现,而在Android下完成补间动画也就是在操作Animation的几个子类。
补间动画和逐帧动画一样,可以使用XML资源文件定义,也可以使用Java代码定义。下面提供一些常用Animation中定义的属性,同样都提供了XML属性以及对应的方法,它们主要用来设定补间动画的一些效果:
- android:duration/setDuration(long):动画单次播放时间。
- android:fillAfter/setFillAfter(boolean):动画是否保持播放开始位置。
- android:fillBefore/setFillBefore(boolean):动画是否保持播放结束位置。
- android:interpolator/setInterpolator(Interpolator):指定动画播放的速度曲线,不设定默认为匀速。
- android:repeatCount/setRepeatCount(int):动画持续次数,如2,会播放三次。
- android:repeatMode/setRepeatMode(int):动画播放模式。
- android:startOffset/setStartOffset(long):动画延迟播放的时长,单位是毫秒。
Animation中内置的方法并不只有这些,还有一些其他的控制细节的方法,有需要可以查询官方文档,这里不再详细讲解。
上面提到,Android下对于补间动画的支持,主要是使用Animation的几个子类来实现,下面分别介绍Animation下的几个子类:
- AlphaAnimation:控制动画透明度的变化。
- RotateAnimation:控制动画旋转的变化。
- ScaleAnimation:控制动画成比例缩放的变化。
- TranslateAnimation:控制动画移动的变化。
- AnimationSet:以上几种变化的组合。
上面几个Animation也包含了补间动画的几种变化,如果需要使用XML资源文件定义补间动画,需要把XML资源文件定义在/res/anim/目录下,在需要使用的地方通过AnimationUtils.loadAnimation(int)方法指定XML动画ID来加载一段动画。AnimationUtils是动画工具类,其中实现了一些静态的辅助动画操作的方法。
例如:
- /**
- * 透明度变化
- */
- protected void toAlpha() {
- Animation anim=AnimationUtils.loadAnimation(ToXMLActivity.this, R.anim.anim_alpha);
- iv_anim.startAnimation(anim);
- }
本文地址 : http://www.fengfly.com/plus/view-214169-1.html
标签: Android Tween |