Android Notes 之 Tween动画 (1)四种基本动画
Android中的Tween动画包括四种:
AlphaAnimation:透明度动画
RotateAnimation:旋转动画
ScaleAnimation:尺寸动画
TranslateAnimation:移动动画
以下是模仿视频写的两个小Demo,主要展示一下四种动画的用法和如何自定义动画,效果如下:
动画的属性,既可以在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)
fromDegrees
和toDegrees
分别指定动画开始和结束的旋转角度,pivotXType
和pivotYType
指定旋转中心的参照类型,它们以静态常量的形式定义在Animation中,pivotXVlaue
和pivotYValue
指定旋转中心的位置。
3.ScaleAnimation(float fromX, float toX, float fromY, float toY, int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
fromX、 toX、fromY、toY
,分别指定了缩放开始和结束的坐标,pivotXType
和pivotYType
设定了缩放的中心类型,pivotXValue
和pivotYValue
设定了缩放中心的坐标。
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动画坐标定义
- Android中的动画研究
- Android Lottie动画的简单使用
- Android设置TextView的渐变颜色、方向和动画效果
- Android开机动画详解
- android判断文件类型是否为音频文件