第七章 Android动画深入分析—学习笔记

View动画

View动画分类

TranslateAnimation、ScaleAnimation、RotateAnimation、AlphaAnimation共四大类。
可以在xml中创建动画,也可以再代码中创建。

自定义View动画

创建一个继承自Animation的类,重写initialize和applyTransformation方法。initialize这个方法中做初始化的工作,applyTransformation中进行相应的矩阵转变即可。

帧动画

是顺序播放一组预先定义好的图片,类似于电影播放。使用AnimationDrawable这个类来播放帧动画。使用方法先在XML文件总定义一个AnimationDraw,再将定义好的Drawable当做View的背景通过Drawable来播放动画。

LayoutAnimation

用于ViewGroup,为ViewGroup的子View出场时的动画效果。

Activity切换效果

在startActivity()之后或者finish()之后调用overridePendingTransition(int enterAnim,int exitAnim)
enterAnim Activity打开时的动画id
exitAnim Activity关闭时的动画id

属性动画

ObjectAnimation

ObjectAnimator a = new ObjectAnimatorofFloat(view,"translationX",300);
    a.setDuration(3000);
    a.start();
    translateX、translateY。X轴Y轴偏移
    scaleX、scaleY。缩放
    pivotX、pivotY。旋转缩放
    x、y。描述View在它所在容器的最终位置
    alpha。透明度

使用ObjectAnimator,非常重要的一点,要操纵的属性必须有get,set方法

PropertyValuesHolder

同时进行多种动画效果,类似AnimationSet

ValueAnimator

属性动画的核心,ObjectAnimator也是继承自它;它本身不提供任何动画效果,更像是一个数值发生器,产生一定有规律的数字,让调用者来控制动画的实现过程

动画的监听事件

ObjectAnimator.addListener(new AnimatorListener());Start、Repeat、End、Cancel 四个过程
.addListener(new AnimatorListenerAdapter());来实现onAnimationEnd事件

AnimatorSet

类似7.2.2 PropertyValuesHolder ,但能实现更为精确的顺序控制
playTogether()、playSequentially()、animSet.play().with()、befor()、after();

XML中使用属性动画

View的animate方法

属性动画的一种简写形式
view.animate().alpha(0).y(300).setDuration(300).withStartAction(new Runnable()).withEndAction(new Runnable()).statr();

你可能感兴趣的:(第七章 Android动画深入分析—学习笔记)