Android Notes 之 Tween动画 (1)四种基本动画

Android中的Tween动画包括四种:

AlphaAnimation:透明度动画
RotateAnimation:旋转动画
ScaleAnimation:尺寸动画
TranslateAnimation:移动动画

以下是模仿视频写的两个小Demo,主要展示一下四种动画的用法和如何自定义动画,效果如下:

Android Notes 之 Tween动画 (1)四种基本动画_第1张图片

动画的属性,既可以在java代码中,也可以在xml文件中,xml文件放在anim文件夹中:

android:duration/setDuration(long):动画单次播放时间。
android:fillAfter/setFillAfter(boolean):动画是否保持播放结束位置。
android:fillBefore/setFillBefore(boolean):动画是否保持播放开始位置。
android:interpolator/setInterpolator(Interpolator):指定动画播放的速度曲线,不设定默认为匀速。
android:repeatCount/setRepeatCount(int):动画持续次数,如1,会播放两次。
android:repeatMode/setRepeatMode(int):动画播放模式,reverse表示反转,restart表示和第一次一样。
android:startOffset/setStartOffset(long):动画延迟播放的时长,单位是毫秒。

几个动画的构造函数:

1.AlphaAniamtion(float fromAlpha,float toAlpha)
设定动画开始和结束的透明度。

2.RotateAnimation(float fromDegrees,float toDegrees,int pivotXType,float pivotXVlaue,int pivotYType,float pivotYValue)

fromDegreestoDegrees分别指定动画开始和结束的旋转角度,pivotXTypepivotYType指定旋转中心的参照类型,它们以静态常量的形式定义在Animation中,pivotXVlauepivotYValue指定旋转中心的位置。

3.ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

fromX、 toX、fromY、toY,分别指定了缩放开始和结束的坐标,pivotXTypepivotYType设定了缩放的中心类型,pivotXValuepivotYValue设定了缩放中心的坐标。

4.TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)
指定动画开始的点类型以及点位置和动画移动的X、Y点的类型以及值。

开始动画

1.startAniamtion(animation);//java代码配置的动画
2.startAnimation(AnimationUtils.loadAnimation(Context context,int resId))//xml配置的动画

Animation变化坐标点的参照类型

上面看到,RotateAnimation、ScaleAnimation、TranslateAnimation都存在一对pivotXType,pivotYType参数,它们是用来指定点的参照类型,使用int类型以静态常量的形式定义在Animation中,它有如下个值:

ABSOLUTE:以绝对坐标为参照。
RELATIVE_TO_PARENT:以父容器为参照。
RELATIVE_TO_SELF:以当前容器为参照。

Animation的Interpolator

补间动画定义的是动画开始、结束的关键帧,Android需要在开始帧、结束帧之间动态计算,插入大量帧,而Interpolator用于控制”插入帧”的行为。

Interpolator根据特定算法计算出整个动画所需要动态插入帧的密度和位置,简单来说,Interpolator负责控制动画的变化速率,用来设定与基本动画(Alpha、Scale、Rotate、Translate)的动画播放速率。

LineraInterpolator:动画以匀速的速度变化,默认值。
AccelerateInterpolator:在动画开始的时候变化速度较慢,之后开始加速。
AccelerateDecelerateInterpolator:在动画开始、结束的地方改变速度较慢,中间的时候加速。
CycleInterpolator:动画循环播放特定的次数,变化速度按照正弦曲线变化。
DecelerateInterpolator:在动画开始的地方速度较快,然后开始减速。

源代码Animation分支

你可能感兴趣的:(android,动画)