动画深入分析(艺术探索读书笔记)

2019-07-08  本文已影响0人  最美下雨天

动画分类:帧动画、View动画、属性动画

View动画

只能作用在View上面的动画,我们平时常用的五个动画类都是继承自Animation这个类的

继承关系

<set>、<translate>、<scale>、<rotate>、<alpha>

自定义view动画

步骤:

1、继承Animation
2、重写initialize做一些必要的初始化工作
3、重写applyTransformation完成矩阵的变换

自定义view的关键在于对矩阵的操作,一般为了计算简单都需要借助Camera类

view 动画的特殊使用场景

1、LayoutAnimation

在res/anim下面定义动画文件,标签名称为<layoutAnimation />

一般我们是为ViewGroup指定一个LayoutAnimation,这样的话ViewGroup中的所有子view出场时都会具有这个动画效果,比如说我们可以给ListView运用LayoutAnimation,这样ListView的所有item在出场时都会有动画效果了
2、Activity切换动画

overridePendingTransition(int enterAnim, int exitAnim)
主要是在这个方法中指定进入和退出的Activity要用到的动画

getSupportFragmentManager().beginTransaction().setCustomAnimations(int enter,int exit)

注意:在res/anim下面的资源文件是view动画,在res/animator下面的资源文件是属性动画

属性动画

属性动画可以对任意对象的属性进行动画而不仅仅是view,属性动画的父类是Animator

Animator的子类
属性动画中的插值器和估值器

插值器的基类是TimeInterpolator,输入的值input是一个介于0和1之间的数

//input A value between 0 and 1.0 
public interface TimeInterpolator {
    float getInterpolation(float input);
}

估值器的基类是TypeEvaluator,参数fraction是介于0和1之间的数

public interface TypeEvaluator<T> {

    public T evaluate(float fraction, T startValue, T endValue);

}

我们可以得出结论:插值器的作用是根据时间流逝的百分比来计算出当前属性值改变的百分比,估值器的作用是根据当前属性值改变的百分比来计算出改变后的属性

上一篇 下一篇

猜你喜欢

热点阅读