Android知识要点整理(1)---- Android 2D动画

1. 动画类型

Android 2.3 及以前的版本支持3种类型动画:逐帧动画、布局动画和视图动画。

逐帧动画:作用对象是系列图片,是通过AnimationDrawable 类来完成逐帧动画;

布局动画:作用对象是某些类型的视图,比如ListView 、GridView,通常是为首次添加布局时增加动画效果。

视图动画:作用对象是任意视图,通过控制用于显示视图的变换矩阵,可以将任意视图制作成动画。


后两者可以统称为:补间动画。


Android 3.0新增的动画方法称为属性动画:它的核心实现方法是随时间不断修改属性值


2.逐帧动画

以很短的间隔时间连续显示一系列图像的简单过程。Android中通过AnimationDrawable 类来完成逐帧动画。

AnimationDrawable类实现动画的方式是:要求容器或视图调用Runnable类,该类实际使用不同的参数集重新绘制Drawable。

在XML中使用animation-list来标记一个逐帧动画,如:

<animation-list  xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/colored_ball1" android:duration="50"/>
<item android:drawable="@drawable/colored_ball2" android:duration="50"/>
<item android:drawable="@drawable/colored_ball3" android:duration="50"/>
</animation-list>
AnimationDrawable 在开始动画前需要将所有图像载入内存。animation-list标记将被转换为AnimationDrawable对象。

3.布局动画

使用布局动画可以向ListView 或者GridView中每个项目的显示方式添加视觉效果。

可以在由ViewGroup派生而来的所有控件上使用这种动画类型。

XML中定义布局动画:

<layout-animation xmlns:android="http://schemas.android.com/apk/res/anroid"
    android:delay="30%"
    android:animationOrder="reverse"
    anroid:animation="@anim/scale"/>
然后在XML布局文件中的某个容器控件应用该动画:

<ListView 
    android:...
    android:layout_animation="@anim/list_layout_controller"/>

4.视图动画

当在Android中显示视图时,它将经历一个变换矩阵的过程,变换矩阵用于以某种方式变换视图

自定义视图动画:

public class ViewAnimation extends Animation{
    @Override
    public void initialize(int width,int height,
                                     int parentWidth,int parentHeight){
    super.initialize(width,height,parentWidth,parentHeight);
    setDuration(2500);
    setFillAfter(true);
    setInterpolator(new LinearInterpolator());

    @Override
    protected void applyTransformation(float interpolatedTime,Transformation t){
        final Matrix matrix = t.getMatrix();
        matrix.setScale(interpolatedTime,interpolatedTime);
    }
} 
动画的主要部分在applyTransformation方法中实现。Android的框架将反复调用此方法来模拟动画。

5.基本的补间动画类型

缩放动画、旋转动画、平移动画、alpha动画。

6.变换矩阵

Matrix类的一些重要方法:

matrix.reset();

matrix.setScale();

matrix.setTranslate();

matrix.setRotate();

matrix.setSkew()://扭曲图像

7.属性动画

新的属性动画包含以下概念:
动画生成器=>Animator

值动画生成器;=>ValueAnimator 、ValueAnimator.AnimatorUpateListener

对象动画生成器;=>ObjectAnimator

动画生成器集合;=>AnimatorSet

动画生成器构建器;=>AnimatorSetBuilder

动画生成器监听器i;=>AnimatorListener

属性值持有者;=>PropertyValuesHolder

类型求值器;=>TypeEvaluataor

关键帧;=> KeyFrame

视图属性动画生成器;

布局转变;

动画生成器XML文件定义。



你可能感兴趣的:(Android知识要点整理(1)---- Android 2D动画)